2014-10-29 31 views
0

我在Angular中構建了一個分頁系統,但它有一個我無法弄清楚的設計缺陷。共享範圍的不同模板中的角度多個指令

我需要能夠從不同的模板文件調用此指令並共享相同的頁面範圍。我已經嘗試了獨立的範圍,但它需要能夠更改需要在控制器中定義的分頁項目的範圍。

這裏有一個工作示例:http://plnkr.co/edit/Qw2NmakYRlse1Eo7MESh?p=preview

你可以看到這個問題,當你點擊尋呼機的一個,而另一個不更新它。

分頁指令更改了scope.pages數組。然後,使用該數組的模板更改尋呼機。

app.directive('pagination', function(){ 
    return { 
    restrict: "A", 
    templateUrl:'pagination.html', 
    link: function(scope, element, attrs) { 

回答

1

的模板沒有更新,因爲有不共享相同的範圍,嘗試與此更新版本:

http://plnkr.co/edit/E1DLOacahykSwWBWhHhU?p=preview

的技巧可能是實現雙向綁定:

return { 
    restrict: "A", 
    scope: { 
    items: '=' 
    }, 

並使用此對象來存儲您的頁面。

scope.items = [/*list of pages*/] 
+0

我有一些麻煩得到這個工作。一切都與plunker相同,但是項目是動態的,所以它必須首先發出$ http請求。項目在指令中是未定義的。 – Kolby 2014-10-29 05:15:51

+0

在項目中添加了$ watch,然後調用init函數。謝謝你的幫助 :) – Kolby 2014-10-29 06:09:40