好吧,所以我有两个控制器控制站点的两个截然不同的部分,它们在同一页上。两个控制器,角度范围内的一个变量
第一个是通讯注册表单,第二个是一个篮子。第二个不是直接作为ng-controller
指令放置在DOM中,而是作为自定义指令的控制器。
一些代码:
<div ng-controller="newsletter-signup">
<div ng-show="showLoader">
... Cool loading animation here ...
</div>
... Form in here ...
</div>
<div basket>
<div ng-show="showLoader">
... Cool loading animation here ...
</div>
... Basket data in here ...
</div>
,我有是,这两个包含div
,我只希望在一定条件下显示出来,这个div被存储在一个模板文件中的问题:
<div ng-show="showLoader">
... Cool loading animation here ...
</div>
然而,当这两个控制器中的任一控制器中的$scope.showLoader
是true
时,在通讯和篮子中都显示这个。
我似乎无法弄清楚如何隔离对方的范围,但继续使用相同的变量名称。
篮子指令如下:
return {
link : linkFn,
scope: '=',
restrict : 'A',
controller : 'BasketController'
};
BasketController
在模板从未定义。
我该如何解决这个问题?
我不希望div
的新闻通讯显示何时正在更新购物篮,同样,我不希望div
在更新通讯时显示。
编辑:我们正在使用以下来定义组件,我想知道这是否是根本原因。
window.angular.module('Basket', []);
window.angular.module('App', ['Basket']);
在一个指令,你可以使用'范围:{}'创建一个孤立的范围。但是篮子指令是否有模板?根据你发布的内容,我不明白它的作用。 – jme11
篮子是附加到某些动态内容的环绕'div'的属性。它没有它自己的模板。我会更新更清晰。 –
这两个div是否有一个共同的父亲,其范围也可能包含一个“showLoader”变量? –