這是你的意思?
HTML:
<div ng-app="HelloApp" ng-controller="HelloController">
<select ng-model="blah" ng-options="value as value | myfilter for value in values"></select>
{{blah}}
</div>
JS:
app.filter('myfilter', function() {
return function(obj) {
return obj.h + ':' + obj.m;
}
});
app.controller('HelloController', function($scope) {
$scope.values = [{
"h" : 1,
"m" : 30
}, {
"h" : 1,
"m" : 25
}];
jsfiddle
編輯:
回答你的問題,如果你想初始化一個選擇的模型和模型比較將通過參考完成;看看這個:angular docs,特別這一行:「注意:。ngModel比較由參考,不值綁定到對象的數組時,這是重要的參見本的jsfiddle示例」除非您表達式中定義的軌道,你的情況,我們可以做這樣的事情:
HTML:
<div ng-app="HelloApp" ng-controller="HelloController">
<select ng-model="blah" ng-options="value as value | myfilter for value in values track by value.h + ":" + value.m"></select>
{{blah}}
</div>
JS:
app.filter('myfilter', function() {
return function(obj) {
return obj.h + ':' + obj.m;
}
});
app.controller('HelloController', function($scope) {
$scope.values = [{
"h" : 1,
"m" : 30
}, {
"h" : 1,
"m" : 25
}];
$scope.blah = {h: 1, m: 25};
});
plunker
感謝使用過濾器的頂端!更新小提琴http://jsfiddle.net/niclas_lindberg/37dqrb08/2/來嘗試它。但是,當我使用數組中存在時間的對象定義$ scope.blah時,select並沒有使用正確的值進行初始化。如果我創建一個由數組引用的值對象並在$ scope.blah中設置,它就可以工作。 (引用)。有任何想法嗎? – Niclas 2014-11-21 09:09:05
檢查我的編輯:) – Wawy 2014-11-21 09:26:26
正確。我做了同樣的發現。下面的例子。接受的答案。 :) – Niclas 2014-11-23 14:45:51