Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs作用域绑定和rootscope_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

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”