將我插入您的 RESTFul API,即可立即獲得完整的管理介面(資料網格、篩選器、複雜表單小工具、多模型關係、儀表板)!除了簡單的 CRUD 之外,ng-admin 還可以讓您建立複雜的 GUI,而不會妨礙您。
該項目目前處於維護模式。我們用React.js從頭開始重建它(新專案稱為react-admin),並且我們將所有精力放在React版本上。
目前的 ng-admin 版本(master)依賴 Angular.js 1.6。如果您需要與 Angular 1.3 相容,請使用 ng-admin 0.9。
從您最喜歡的套件管理器中獲取 ng-admin:
npm install ng-admin --save
# or
yarn add ng-admin
ng-admin
與 Webpack 完全相容,也應該與所有可用的主要模組捆綁器相容。如果您使用其中之一,則只需新增這一行:
const myApp = angular . module ( 'myApp' , [
require ( 'ng-admin' ) ,
// ...
] ) ;
重要提示:由於我們使用require
包含 HTML 範本來防止templateUrl
隱含的 AJAX 請求,因此您需要設定模組捆綁器來處理 HTML。可以使用 HTML 載入器透過 Webpack 來完成:
module . exports = {
// ...
module : {
loaders : [
// ...
{ test : / .html$ / , loader : 'html' } ,
]
} ,
} ;
如果您的模組捆綁器也支援 SASS 或 CSS,您也可以使用以下方式包含樣式表:
// SASS version
require ( 'ng-admin/lib/sass/ng-admin.scss' ) ;
// CSS version
require ( 'ng-admin/build/ng-admin.min.css' ) ;
使用模組捆綁器,您還可以為所有 JavaScript 和樣式表產生來源映射,幫助您尋找最隱藏的錯誤。
如果您沒有模組捆綁器,請不要擔心:您仍然可以使用<script>
標籤包含ng-admin
:
< link rel =" stylesheet " href =" node_modules/ng-admin/build/ng-admin.min.css " >
< script src =" node_modules/ng-admin/build/ng-admin.min.js " > </ script >
將ng-admin.min.css
和ng-admin.min.js
加入 HTML,新增<div ui-view="ng-admin">
,並配置管理:
<!doctype html >
< html lang =" en " >
< head >
< title > My First Admin </ title >
< link rel =" stylesheet " href =" node_modules/ng-admin/build/ng-admin.min.css " >
</ head >
< body ng-app =" myApp " >
< div ui-view =" ng-admin " > </ div >
< script src =" node_modules/ng-admin/build/ng-admin.min.js " > </ script >
< script type =" text/javascript " >
var myApp = angular . module ( 'myApp' , [ 'ng-admin' ] ) ;
myApp . config ( [ 'NgAdminConfigurationProvider' , function ( NgAdminConfigurationProvider ) {
var nga = NgAdminConfigurationProvider ;
// create an admin application
var admin = nga . application ( 'My First Admin' ) ;
// more configuration here later
// ...
// attach the admin application to the DOM and run it
nga . configure ( admin ) ;
} ] ) ;
</ script >
</ body >
</ html >
請參閱入門專用章節,以了解初學者的逐步教學。
ng-admin 中的管理由包含多個實體的一個應用程式組成。每個實體最多有 5 個視圖,每個視圖有許多欄位。
application
|-header
|-menu
|-dashboard
|-entity[]
|-creationView
|-editionView
|-deletionView
|-showView
|-listView
|-field[]
|-name
|-type
有關更多詳細信息,請參閱配置 API 參考專用章節。
提示:您在 ng-admin 專案中找不到相關的類別。事實上,管理配置 API 作為一個獨立的、與框架無關的庫存在,稱為 admin-config。請隨時瀏覽該庫的源代碼以了解更多資訊。
NG-admin 支援讀寫視圖中實體之間的關係,並為此提供專門的欄位類型: reference
、 referenced_list
、 reference_many
和embedded_list
。關係參考章節更詳細地描述了哪種情況使用哪種欄位類型。
此外,「配置 API 參考」一章的「欄位」部分還列出了每種欄位類型的所有設定。
預設情況下,ng-admin 會建立一個側邊欄選單,每個實體一個項目。如果您想要自訂此側邊欄(標籤、圖示、順序、新增子選單等),則必須手動定義選單。
請參閱選單配置專門章節。
ng-admin 應用程式的主頁稱為儀表板。使用它向最終用戶顯示重要信息,例如最新條目或圖表。
請參閱儀表板配置專門章節。
ng-admin 向 REST API 發出的所有 HTTP 請求均由 Restangular 執行,這就像類固醇上的$resource
一樣。
REST 規範沒有提供足夠的細節來涵蓋管理 GUI 的所有要求。 ng-admin 對 API 的設計方式做了一些假設。所有這些假設都可以透過 Restangular 的請求和回應攔截器來覆寫。
這意味著您不需要使 API 適應 ng-admin;由於 Restangular 的靈活性,ng-admin 可以適應任何 REST API。
請參閱自訂 API 映射專門章節。
您可以在不同層級覆蓋幾乎所有由 ng-admin 產生的 HTML。
請參閱主題化專門章節。
ng-admin 介面使用英語作為預設語言,但由於 Angular-Translate,支援切換到另一種語言。
請參閱翻譯專門章節。
對於每個實體,ng-admin 都會建立用於建立、檢索、更新和刪除 (CRUD) 該實體所需的頁面。當您需要在實體上實現更具體的操作時,您必須新增自訂頁面 - 例如詢問電子郵件地址以傳送訊息的頁面。如何路由到特定頁面並將其顯示在 ng-admin 佈局中?
請參閱「新增自訂頁面」專門章節。
當您在 REST API 回應和 ng-admin 之間對應欄位時,您需要為其指定一個類型。此類型決定資料的顯示和編輯方式。自訂現有的 ng-admin 類型並新增類型非常容易。
請參閱「新增自訂類型」專門章節。
若要使用所需的依賴項來建立 ng-admin 原始程式碼,並取得有關效能增強器的提示,請參閱準備生產專用章節。
關注 marmelab 博客,了解有關 ng-admin 的新聞(教程、插件、新版本等)。
您還應該查看 GitHub 上的 ng-admin 發布頁面,以了解新版本的公告並完成變更日誌。
NG-admin 是一個開源項目,社群日益壯大。您可以透過以下任何管道禮貌地詢問來獲得幫助:
請提供盡可能多的上下文,包括管理配置片段以及您正在對應的 API 的回應。
marmelab/admin-on-rest 由同一團隊開發,使用不同的架構,但提供類似的服務:REST API 的管理 GUI,這次使用 React.js、Redux、react-router 和 Material UI。
您關於在您的特定上下文中使用 ng-admin 的回饋非常有價值,如果您遇到任何問題或疑問,請隨時開啟 GitHub Issues。
歡迎所有貢獻:請向我們發送 Pull 請求,以了解您的分叉中您認為值得回饋的任何新功能/錯誤修復。
另外,如果您對 ng-admin 有一定的經驗,請在任何支援管道中回答新人提出的問題(請參閱上文)。
透過呼叫install
目標來安裝 npm 依賴項(用於測試):
make install
要測試您的更改,請運行範例應用程序,該應用程式與範例 REST API 捆綁在一起,方法是呼叫:
make run
然後,連線到http://localhost:8000/
瀏覽管理應用程式。此任務使用 webpack-dev-server,這意味著只要來源中的一個檔案更新,瀏覽器就會重新載入頁面。這使得部落格應用程式成為我們首選的即時測試環境。
ng-admin 具有單元測試(由 karma 提供支援)和端對端測試(由 Protractor 提供支援)。透過呼叫以下命令啟動整個測試套件:
make test
提示:如果您正在進行 Karma 測試,您可以透過停用單次運行來防止重新啟動整個過程:
./node_modules/.bin/karma start src/javascripts/test/karma.conf.js
在發布新版本之前,請使用以下命令將 JS 和 CSS 來源連接並縮小為縮小的腳本:
make build
git add build
git commit -m ' update built files '
git push origin master
git tag vx.x.x
# create a new tag
git push origin --tags
# publish to npm
npm publish
提示:不要在 Pull Request 中提交已建置的文件,它會強制在其他 PR 上重新建立基礎。核心團隊將負責定期更新這些建置的文件。
ng-admin 根據 MIT 許可證獲得許可,並由 marmelab 贊助。