У меня есть флажок, который я хотел бы установить в неопределенное состояние на основе состояний других флажков. Когда я нахожусь на странице, на которой установлены все флажки, она обновляется, как и ожидалось (т.е. флажок найден). Но когда я перехожу к этому с другой страницы, мой метод не находит флажок (т.е. возвращает null
).
Когда я отлаживаю в Chrome devtools, я замечаю
let checkBoxWithIndeterminateState;
let checkbox = false;
fireWhenCheckBoxChanged() {
// returns null when navigating from another page but not when on its own page
checkBoxWithIndeterminateState = document.getElementById('checkBoxWithIndeterminateState')
checkBoxWithIndeterminateState.indeterminate = true
}
Шаблон:
<input type="checkbox" id="checkBoxWithIndeterminateState" data-ng-model="checkbox">
Как мне дождаться загрузки нового шаблона, прежде чем мой метод попытается найти флажок? Я прочитал некоторые предложения по использованию this._$scope.$on('$viewContentLoaded'...
, но это не работает.
Благодарность!
1 ответ
Как насчет добавления директивы ng-init
к вашему целевому флажку и выполнения вашей логики в нем, таким образом, вы уверены, что элемент есть, вот предложение:
<input type="checkbox" ng-init="initTragetCheckbox()">
В вашем контроллере
$scope.initTragetCheckbox = function () {
// your code to execute for other checkboxes
var checkbox1 = document.getElementById("checkbox1");
var checkbox2 = document.getElementById("checkbox2");
....
}
Похожие вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].