AngularJS ng-init не инициализирует переменную глобально - PullRequest
0 голосов
/ 05 октября 2018

Я использую ng-repeat директивы angularjs для загрузки массива, в котором хранится значение 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 голосов
/ 05 октября 2018

Кроме того, двустороннее связывание должно работать для вас. Я полагаю, что вызов некоторой функции является более простым способом (особенно, если вы можете создать эту функцию в области действия конкретного контроллера - так было бы намного легче получить точку)

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

Другой «угловой путь» - добавление явного наблюдателя к data.Submenu.length в JS-коде компонента

$scope.$watch('data.Submenu.length', function (value, oldValue) {
    if (!value && oldValue) {
        // do your init
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...