Я использую код от AngularJS implementation of ScrollSpy (original article here), но столкнулся с проблемой, когда моя навигация динамически создана, но она работает, когда навигация статически создана.
У меня есть директива scrollSpy
, которая следит за списком spies
. Список spies
- это в основном список навигационных элементов, которые он должен выделить, когда пользователь прокручивает страницу. spies
добавляются через addSpy
метод в контроллере scrollSpy
как так
controller: function ($scope) {
$scope.spies = [];
return this.addSpy = function (spyObj) {
return $scope.spies.push(spyObj);
};
},
addSpy
функция всегда вызывается, однако, когда я добавляю соглядатаев динамически за $ часы для этого списка никогда не увольняют, это уволят, когда навигационные элементы статически создаются.
link: function (scope, elem, attrs) {
scope.$watch('spies', function (spies) {
// I never get called when spies are added dynamically, even
// though spies are added to the $scope.spies object in the controller!
}
Может ли кто-нибудь помочь мне понять, почему часы $ watch не срабатывают? Я попробовал добавить $scope.$apply
, но он сказал, что он уже находится в цикле дайджеста.
Отлично, спасибо – Chris