AngularJS ng-init未全局初始化变量

时间:2018-10-05 09:19:42

标签: javascript angularjs

我正在使用angularjs指令的ng-repeat加载其中具有JSON值存储的数组。并且值也具有子数组。

<div ng-repeat="data in MENULIST"  >  //MENULIST have array(Data)

在检查了诸如(if:condition)之类的条件之后。

<div ng-if="(data.SubMenu.length >0)" ng-init = "MENULIST = data.SubMenu"></div>

但是,对MENULIST的赋值或初始化并未全局完成,仅限于该div。

在打印两个主数组元素后ng-repeat停止。

不打印数组元素的子元素。

实际上,我正在尝试在具有菜单和子菜单的侧栏中制作树状结构。

1 个答案:

答案 0 :(得分:0)

除了双向绑定应该对您有用之外,我相信调用某些函数是更直接的方式(尤其是因为您可以在特定控制器的范围内创建此函数-因此更容易理解这一点)

<div ng-if="(data.SubMenu.length >0)"
     ng-init = "someController.setMenuList(data.SubMenu)">
</div>

另一个“角度”是在组件的JS代码中为data.Submenu.length添加显式观察程序

$scope.$watch('data.Submenu.length', function (value, oldValue) {
    if (!value && oldValue) {
        // do your init
    }
});