如何将{selected'属性放在option
device.type
s值相等的位置。出于某种奇怪的原因,即使option
具有其他值,也会显示第一个device.type
。将代码放在指令link
,compile
或controller
中的最佳位置在哪里?
template.html
<div>
<select ng-model="device.type">
<option value="value1">value1</option>
<option value="value2" selected>value2</option>
.
.
.
<option value="valueN">valueN</option>
</select>
</div>
指令
app.directive('details', function() {
return {
restrict : 'E',
scope : {
device: '=',
...
},
templateUrl : 'template.html',
link : function(scope, element, attrs) {
// put 'selected' on option element where device.type is equivalent to
// is it preferrable to put logic here? or in controller or compile
}
};
});
感谢您的输入。感谢。
答案 0 :(得分:0)
您不需要创建指令来实现这一目标。
只需填写ng-options
,然后使用track by <some field>
。
然后,当您的选择模型发生变化时,它会选择与您在track by <some field>
中选择的字段对应的正确选项。
类似的东西:
<select
ng-model="device"
ng-options="device as device.type for device in devices track by device.type">
</select>
因此,当您将设备对象放入选择的模型时,它会选择device.type
与您的模型匹配的选项。