Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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
Angularjs 多组件范围冲突_Angularjs_Angularjs Scope - Fatal编程技术网

Angularjs 多组件范围冲突

Angularjs 多组件范围冲突,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我正在开发一个基于AngularJS 1.5的管理面板应用程序。其结构如下: 有一个名为app的主要组件,我在其中使用所有其他组件 app.html <div class="wrapper"> <message-component></message-component> <header></header> <leftbar></leftbar> <body></

我正在开发一个基于AngularJS 1.5的管理面板应用程序。其结构如下:

  • 有一个名为
    app
    的主要组件,我在其中使用所有其他组件
  • app.html

    <div class="wrapper">
        <message-component></message-component>
        <header></header>
        <leftbar></leftbar>
        <body></body>
    </div>
    
    <li ng-if="leftbar.hasPermission('FOO')">
        <a ui-sref="foo">
            <span>Demo Page</span>
        </a>
    </li>
    
    class LeftbarController {
        constructor() {}
    
        hasPermission(name) {
            return user[name];
        }
    }
    
    leftbar.controller

    <div class="wrapper">
        <message-component></message-component>
        <header></header>
        <leftbar></leftbar>
        <body></body>
    </div>
    
    <li ng-if="leftbar.hasPermission('FOO')">
        <a ui-sref="foo">
            <span>Demo Page</span>
        </a>
    </li>
    
    class LeftbarController {
        constructor() {}
    
        hasPermission(name) {
            return user[name];
        }
    }
    
    如果用户拥有名为“FOO”的权限,它基本上会显示
  • 。 现在,同时我的
    主体
    组件对用户也是可见的,并且其中存在一个输入字段,因此每当我在该字段中写入内容时,也会调用另一个组件中存在的
    hasPermission
    方法


    那么这里的问题是什么呢?为什么作用域的行为是这样的?

    我不确定我是否理解您所遇到的问题,您能否详细说明意外的行为,并从
    主体
    组件中添加代码?还有,为什么您的
    haspowmission
    方法没有返回它应该返回的布尔值?实际问题是,每当任何组件的模型(此)中的任何内容发生变化时,任何其他组件中存在的ngIf表达式也会再次得到求值。是的,AngularJS的摘要循环就是这样工作的,任何更改都会触发对所有渲染组件的重新检查。我不知道。谢谢那么,我能做些什么来避免这种情况呢?如果我使用一次性绑定运算符(::),我没有足够的信息来执行此操作,您需要从正在更改的组件、导致更改的组件、不应更改的预期结果以及您得到的更改结果中添加代码。我不确定我是否理解您遇到的问题,您能否详细说明意外行为,并从
    正文
    组件中添加代码?还有,为什么您的
    haspowmission
    方法没有返回它应该返回的布尔值?实际问题是,每当任何组件的模型(此)中的任何内容发生变化时,任何其他组件中存在的ngIf表达式也会再次得到求值。是的,AngularJS的摘要循环就是这样工作的,任何更改都会触发对所有渲染组件的重新检查。我不知道。谢谢那么,我能做些什么来避免这种情况呢?如果我使用一次性绑定运算符(::),我没有足够的信息来执行此操作,您需要添加来自正在更改的组件、导致更改的组件、不应更改的预期结果以及您得到的更改结果的代码。