У меня есть угловой компонент:Получить связанное значение объекта углового компонента от его контроллера
module.exports = {
bindings: {
vulnerability: '<',
},
controller: ['$scope', function($scope){
//want to get value of vulnerability from above
$scope.vulnerability // doesn't work
}],
};
, который я ссылаться в нг-повторить
<div ng-repeat="vulnerability in vulnerabilities" class="vulnerability-item">
<vulnerability-item vulnerability="vulnerability"> </vulnerability-item>
</div>
Значение уязвимости не собирается измените, как только директива будет вызвана, поэтому мне не нужно смотреть это значение, просто чтобы ссылаться на нее после ее установки.
Я разместил $scope.$watch
на этом объекте, чтобы увидеть, работает ли он, и он срабатывал, но я не мог видеть новое или старое значение в обработчике часов, так что это все равно мне не помогло.
Я пробовал $scope.vulnerability
и $ctrl.vulnerability
, так как я бы ссылался на это свойство в шаблоне директив, но не работал. Как получить связанное значение, которое передается?
добавив эти часы:
$scope.$watch('vulnerability', function (oldV, newV) {
console.log('old', oldV)
console.log('new', newV)
})
Я получаю new undefined
и old undefined
в консоли для каждого экземпляра компонента, хотя, если я изменить $scope.$watch('vulnerability'
к $scope.$watch('nonsense')
Он по-прежнему срабатывает журналы один раз для каждого компонента.
Пожалуйста, обновите вопрос с вашей попытки по использованию '$ сфера $ watch'.. Для 1.5 и компонентов ['$ onChanges'] (https://docs.angularjs.org/guide/component#component-based-application-architecture) предпочтительнее крючок. – estus
Как я уже говорил, я не заинтересован в том, чтобы наблюдать за изменениями. Нет ли способа получить это значение непосредственно от контроллера? – Andrew