2

我有一些元素只想显示文档的作者。

我可以做这样的事情:

<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>
4

2 回答 2

2

我发现我可以将 isUser 变成一个函数。

<div ui-show="isUser()">Edit</div>
<div ui-show="isUser()">Review</div>

并在控制器中写入条件。

于 2013-05-29T22:11:11.767 回答
0

你有几个选项来解决这个问题:

1)在您的应用程序中引入“全局”或“父”控制器。这将包含您的isUser范围变量,您基本上可以从该控制器下方的任何控制器中设置该变量。这意味着您可以拥有一个LogInController将处理注销/登录并可以通过$scope.isUser = false.

这是一个小提琴的例子,它可能看起来像:http: //jsfiddle.net/digitalzebra/MrQrX/

2)根据用户是否登录/注销加载不同的模板或包含。使用时<ng-include src="partialTemplate">属性src实际上是一个表达式。因此,您可以根据该表达式的值切换实际加载的模板。然后,您可以在控制器中设置值并动态更改加载的模板:$scope.partialTemplate = "loggedOff.html"

于 2013-05-29T22:12:22.657 回答