Я установил контроллер, в котором я вызываю функцию, определенную в службе.Невозможно прочитать свойство 'style' of null - angularjs
angular.element(document).ready(function() {
FilterDataService.checkForFilters($scope.mediaTypeList, 'filterAddMediaType');
});
Ниже функция:
this.checkForFilters = function(list, filterSection) {
if (list < 1) {
document.getElementById(filterSection).style.display = 'none';
}
else {
document.getElementById(filterSection).style.display = 'inline-block';
}
};
У меня никаких проблем не звонить и получать результаты от этой функции после того, как мой взгляд, и контроллер загружается. Однако, когда я называю эту функцию просмотра страницы + нагрузки контроллера я получаю следующую ошибку
TypeError: Cannot read property 'style' of null
Ошибка этой линии
document.getElementById(filterSection).style.display = 'none';
я понял вопрос, потому что я пытаюсь установить стиль на элементе div, который еще не загружен, поэтому я поставил следующее:
angular.element(document).ready(function() {...
Однако это не решило мою проблему. Что я делаю не так?
EDIT: Я также попытался следующие:
angular.element('#' + filterSection).ready(function() {
document.getElementById(filterSection).style.display = 'none';
});
Проверьте, находится ли загруженная страница содержит 'filterAddMediaType' div – SANN3
Вы используете угловой так же, как и jQuery. Только не надо. Прекратите делать манипуляции с DOM. Определите модель и используйте ng-show в вашем представлении, чтобы показать и скрыть элементы на основе значений модели: '
@ SANN3 Я проверил и у этого есть этот элемент. – ocajian