2014-10-29 75 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