您應該改用指令。工廠創建一個單一的即時(見Angular Provider Documentation並不會創建一個私有的範圍,你需要不重寫數據
;注:角的所有服務都是單身
但指令規定私人。範圍和創建新實例每次如果你想他們,他們被稱爲在HTML時間。
//directive
scope: { // this option creates isolated scopes
something : '=',
},
我創建了一個Plunkr展示一個可能的設置,對於一些書面詳情請看我的answer from few days ago。
你的HTML可能是這樣的事後
<my-grid options="all.firstOptions" class="grid"></my-grid>
哪裏my-grid
是你的指令,並options=""
是你的特殊設置(和其他任何你希望的指令使用)。在你的指令中,你聲明瞭默認設置並將它們與特殊的設置合併。
scope.gridOptions = {
data: scope.options.data, //private scoped from options : '=',
columnDefs: scope.options.colDef || defaultColDef, // optional setting or default setting
// ... some more default data
};
如果您有任何具體問題,請告訴我。
來源
2015-09-16 07:21:51
CMR
謝謝你回答我的問題,但它並沒有解決我的問題。我也有一個指令來加載網格模板。我已經提到每個網格都有自己的列和數據,其餘的功能保持不變。任何用例所需的任何東西,開發人員都會在控制器中編寫自己的功能。這應該是什麼方法? – Scriptner
對不起,我不明白你的問題。在你的問題中使用工廠不起作用,你需要一個指令。如果你想用相同的基本配置創建不同的網格(數據,列等),你可以使用我的方法。請嘗試更具體地瞭解您的需求。 – CMR
我在http://plnkr.co/edit/FuwHnrUjCBJ0BgQ2UM5k?p=preview中添加了我的示例。第二個網格標題被覆蓋到第一個網格標題。如果取消註釋gridApi.pagination的代碼,則會拋出錯誤。請看看這個並幫助我。謝謝。 – Scriptner