我有一些我想要只展示文档作者的元素。
我可以这样做:
<div ui-show="currentUser == doc.user">Edit</div>
<div ui-show="currentUser == doc.user">Review</div>
这很好但是因为在我的生产代码中,ui-show比这个例子长得多,我不想将它复制并粘贴到我需要它的任何地方。
我想设置一个单独的变量,当用户登录或退出时,或者随着新/不同用户的文档更新,动态更新。
<div ui-show="isUser">Edit</div>
<div ui-show="isUser">Review</div>
答案 0 :(得分:2)
我发现我可以将isUser变为函数。
<div ui-show="isUser()">Edit</div>
<div ui-show="isUser()">Review</div>
并在控制器中写下条件。
答案 1 :(得分:0)
您有几种方法可以解决此问题:
1)为您的应用程序引入“全局”或“父”控制器。这将包含您的isUser
范围变量,您可以从此控制器下的任何控制器基本上设置该变量。这意味着您可以使用LogInController
处理注销/输入,并可以通过$scope.isUser = false
设置该变量。
这是一个小提琴,上面有一个示例:http://jsfiddle.net/digitalzebra/MrQrX/
2)根据用户是否登录/加载,加载不同的模板或包含。使用<ng-include src="partialTemplate">
时,src
属性实际上是一个表达式。因此,您可以根据该表达式的值切换实际加载的模板。然后,您可以在控制器中设置值并动态更改加载的模板:$scope.partialTemplate = "loggedOff.html"