控制器:
$scope.obj = {
"category": {
"value": "1",
"synonym": ""
},
"name": {
"value": "2",
"synonym": ""
}
};
我有这样的HTML:
<select
ng-model="model",
ng-options="value.value as key for (key , value) in obj",
bs-select>
</select>
我想得到这个结果:
<option value="1"> category </option>
<option value="2"> name </option>
但我明白了:
<option value="category"> category </option>
<option value="name"> name </option>
你能帮我找个问题吗?
答案 0 :(得分:2)
你在做什么是正确的。下拉列表有点令人困惑,因为您应该通过从模型而不是从DOM访问来获取值。因此,无论HTML中呈现的内容都无关紧要。
下面是一个示例(FIDDLE),当您更改下拉列表时,实际值将被传入。虽然在呈现的HTML中看起来有点不同,但这是Angularjs作为一个自我的本质 - 包含双向数据绑定的范围。
function ctrl($scope) {
$scope.obj = {
"category": {
"value": "1",
"synonym": ""
},
"name": {
"value": "2",
"synonym": ""
}
};
$scope.model = "1";
$scope.$watch('model', function(newValue, oldValue){
console.log(newValue);
});
}