【发布时间】:2015-01-06 18:47:53
【问题描述】:
将作品放置在数组中的元素上时,我无法观看;
查看示例:http://jsfiddle.net/zwrza551/2/
<div ng-app>
<div ng-controller="Test">
Name: <input type="text" ng-model="customer.name" />
<hr/>
<div ng-repeat="address in customer.addresses">
<input type="text" ng-model="address.name" />
<input type="text" ng-model="address.zipcode" />
<hr />
</div>
</div>
</div>
function Test($scope){
$scope.customer = {
name: 'Customer 1',
addresses: [
{ name: 'Address 1', zipcode: 123456, city: null, state: null },
{ name: 'Address 2', zipcode: 234567, city: null, state: null },
{ name: 'Address 3', zipcode: 456787, city: null, state: null },
{ name: 'Address 4', zipcode: 675684, city: null, state: null }
]
};
$scope.$watch('customer.name', function(newName, oldName){
console.log(newName);
});
$scope.$watch('address.zipcode', function(newCode, oldCode){
console.log(newCode);
//Make request to webservice, get addres for zipcode set city and state from this address.
});
}
客户的名字我可以,因为地址数组不起作用。
【问题讨论】:
-
您的地址是客户的成员,因此您需要使用
customer.addresses。不过,我不知道您是否可以查看数组的特定索引。 -
@Jeyp 我无法观看整个对象。我只需要知道邮政编码。如果这个人改变了他的住所号码,那么对象就会改变。所以只需要知道邮编改了就行了。
-
好吧,好吧。然后我建议另一种方法。为什么不在该字段上使用更改侦听器并相应地更新其他值?这似乎是某种自动完成功能,您通常通过对文本字段上的更改事件做出反应来执行此操作。
-
为什么你不使用 ng-change 指令。
标签: javascript angularjs undefined watch