Javascript angularjs作用域绑定和rootscope
我有一些元素只想显示文档的作者 我可以这样做:Javascript angularjs作用域绑定和rootscope,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有一些元素只想显示文档的作者 我可以这样做: <div ui-show="currentUser == doc.user">Edit</div> <div ui-show="currentUser == doc.user">Review</div> 编辑 复习 这很好,但因为在我的生产代码中,ui显示比这个示例长得多,所以我不想复制并粘贴到我需要的任何地方 我想设置一个变量,该变量将在用户登录和注销时或文档使用新的/不同的用户更新时动态更新
<div ui-show="currentUser == doc.user">Edit</div>
<div ui-show="currentUser == doc.user">Review</div>
编辑
复习
这很好,但因为在我的生产代码中,ui显示比这个示例长得多,所以我不想复制并粘贴到我需要的任何地方
我想设置一个变量,该变量将在用户登录和注销时或文档使用新的/不同的用户更新时动态更新
<div ui-show="isUser">Edit</div>
<div ui-show="isUser">Review</div>
编辑
复习
我发现我可以将isUser变成一个函数
<div ui-show="isUser()">Edit</div>
<div ui-show="isUser()">Review</div>
编辑
复习
并在控制器中写入条件。您有几个选项可以解决此问题: 1) 在应用程序中引入“全局”或“父”控制器。这将包含您的
isUser
范围变量,您基本上可以从该控制器下的任何控制器设置该变量。这意味着您可以拥有一个LogInController
,它将处理注销/登录,并可以通过$scope.isUser=false
设置该变量
下面是一个例子,它可能看起来像什么:
2) 根据用户是否登录/注销加载不同的模板或包含。使用
时,src
属性实际上是一个表达式。因此,您可以根据该表达式的值切换实际加载的模板。然后,您可以在控制器中设置值并动态更改加载的模板:$scope.partialTemplate=“loggedOff.html”