У меня есть этот data
в моем контроллере
$scope.data = {
home: {
baseValue: "1",
name: "home"
},
contact: {
baseValue: "2",
name: "contract"
}
// a lot more options
};
с некоторым html следующим образом:
<section class="content row" ng-repeat="item in data">
{{item.name}}
....
</section>
Теперь я хочу знать, когда изменяется baseValue
, но из-за того, что я использую объекты внутри переменной данных, я не могу watch
свойство более простым способом.
Я пробовал что-то вроде этого, но мне нужно петлю весь массив
$scope.$watch('data', function (newValue, oldValue, scope) {
// some code to compare the tow arrays, line by line
}, true);
Как я могу сделать более простой $watch
, чтобы знать только при изменении baseValue
?
Похожие вопросы:
- AngularJS массивы просмотра объектов для изменения данных
- Как получить объект, который был изменен в angularjs?
- Как глубоко наблюдать массив в angularjs?
ОБНОВЛЕНИЕ 1
Я мог бы добавить индивидуальные часы для каждого объекта, чтобы знать, когда изменяется baseValue
, но это не будет хорошо, если бы у меня было число объектов n
, а не только несколько объектов, подобных этому примеру
$scope.$watch('data.home', function (newValue, oldValue, scope) {
// do some stuff with newvalue.baseValue
}, true);
$scope.$watch('data.contact', function (newValue, oldValue, scope) {
// do some stuff with newvalue.baseValue
}, true);
... // Adds more individual `watch`