angularjs 如何在Angular.js中的ng-repeat中具有唯一范围

tkclm6bt  于 2023-04-10  发布在  Angular
关注(0)|答案(1)|浏览(115)

是否可以为$scope设置多个数组?
我有一个div的列表,子作用域是从ng-repeat中的父作用域生成的。我如何使作用域变量单独唯一?
我正在另一个ng-repeat中生成ng-repeat列表。

<div ng-repeat="" ng-init="hide=true" ng-click="hide=!hide">
     <div ng-hide="hide" ng-init="childhide=true" ng-click="childhide=!childhide">
          <div ng-repeat="" ng-init="childhide" ng-hide="childhide">
               <div>{{ variable }}</div>
          </div>
     </div>
</div>

我怎样才能使变量唯一?因为每次我点击任何一个div,所有带有childhide变量的div都会显示出来。有没有一种方法可以使它们单独运行?

omqzjyyz

omqzjyyz1#

要为每个div获取一个新的$scope,首先想到的是创建另一个指令并指定所需的范围类型。

<div class="container">
    <div ng-repeat="item in items"></div>
</div>

将成为:

<div class="container">
    <inner-directive ng-repeat="item in items"></inner-directive>
</div>

然后在inner-directive中:

app.directive('innerDirective', function () {
    return {
        restrict: 'E',
        template: '<div></div>', // this replaces what you had before
        scope: {}
    };
});

这将创建一个隔离作用域,该作用域不从其父作用域继承属性。
还有几个其他的范围选项,但我不记得我的头上每个都做什么。容易阅读的文档虽然。

相关问题