0
我想觀察$ scope上的一個簡單對象,但我很困惑,爲什麼以下總是爲國家和州選擇元素輸出state:{value}
。
angular.module('app').controller('FiltersCtrl', ['$scope', 'filterRepo', function ($scope, filterRepo) {
$scope.data = {
lookups: {
countries: [
{ id: 1, name: 'USA' },
{ id: 2, name: 'Canada' },
{ id: 3, name: 'Mexico' }
],
states: [
{ id: 1, name: 'Oregon' },
{ id: 2, name: 'Texas' },
{ id: 3, name: 'Iowa' }
]
}
};
$scope.query = {
filter: {
country: 1,
state: 1
}
};
for (var item in $scope.query.filter) {
$scope.$watch('query.filter.' + item, function (newValue, oldValue) {
if (newValue !== oldValue) {
console.log(item + ' : ' + newValue);
}
}, false);
}
}]);
你不能安全的'$ watch'回調內部使用'item',因爲它的價值將發生變化到最後當回調運行時可能的鍵('狀態')。 –
小提琴http://jsfiddle.net/E62VE/ – PixnBits
@still_learning那麼我如何獲得對已更改對象的引用? – Sam