我已经显示了如下选择列表:
<select class="form-control" ng-model="primaryEmail" ng-options="e.email for e in emails" ng-change="changePrimaryEmail()"></select>
$ scope.emails绑定到使用ng-repeat的文本框。
$scope.emails=[{"id":1,"customerID":1,"email":"a@test.com","toDelete":0,"isPrimary":false},{"id":10,"customerID":1,"email":"b@test.com","toDelete":0,"isPrimary":false},{"id":11,"customerID":1,"email":"c@test.com","toDelete":0,"isPrimary":true},{"customerID":1,"toDelete":0}];
<div ng-repeat="em in emails">
<input type="email" ng-model="em.email" />
</div>
答案 0 :(得分:2)
您可以按如下方式使用自定义过滤器:
ng-options="e.email for e in (emails | hideUndefined)"
过滤强>
app.filter('hideUndefined', function() {
return function(items) {
var filtered_items = [];
//iterate over all emails
for(var i = 0; i < items.length; i++) {
//if not undefined, add to filtered_items array
if(items[i].email !== undefined) {
filtered_items.push(items[i])
}
}
return filtered_items;
}
})
答案 1 :(得分:1)
我认为你应该使用emails
而不是$scope.emails
这样:
<select class="form-control" ng-model="model.primaryEmail" ng-options="e.email for e in emails" ng-change="changePrimaryEmail()"></select>
<div ng-repeat="em in emails">
<input type="email" ng-model="em.email" />
</div>