我在这里看到了Angular select指令的文档:http://docs.angularjs.org/api/ng.directive:select . 我无法想象如何设置默认值 . 这令人困惑:
选择数组中值的标签
这是对象:
{
"type": "select",
"name": "Service",
"value": "Service 3",
"values": [ "Service 1", "Service 2", "Service 3", "Service 4"]
}
html(工作):
<select><option ng-repeat="value in prop.values">{{value}}</option></select>
然后我试图在select元素中添加一个ng-option属性来设置 prop.value
作为默认选项(不工作) .
ng-options="(prop.value) for v in prop.values"
我究竟做错了什么?
11 回答
angular documentation for select *没有明确回答这个问题,但它就在那里 . 如果你看
script.js
,你会看到:这是html:
这似乎是使用
ng-options
在<select>
上默认选定值的更明显方法 . 如果您有不同的标签/值,它也会起作用 .*
这是来自Angular 1.2.7假设该对象在您的范围内:
工作Plunkr:http://plnkr.co/edit/wTRXZYEPrZJRizEltQ2g
当您从数据库中提取数据,进行修改然后保留更改时,此答案更有用 .
查看此处的示例:
http://plnkr.co/edit/HrT5vUMJOtP9esGngbIV
如果您的对象数组很复杂,如:
而您当前的模型设置为:
它有助于在uuid(或任何唯一字段)上使用
track by
函数,只要ng-model = "user.friend"也有一个uuid:我挣扎了几个小时,所以我想为它添加一些说明,这里提到的所有例子都是指从脚本本身加载数据的情况,而不是来自服务或数据库的东西,所以我想为遇到同样问题的人提供我的经验 .
通常,您只在数据库中保存所需选项的ID,所以......让我们展示它
service.js
controller.js
最后是部分html model.html
基本上我想指出那块“model.id_model作为model.name for model in model in model " the " model.id_model " uses the id of the model for the value so that you can match with the " mainObj.id_model " which is also the " selected_model ", this is just a plain value, also " as model.name " is the label for the repeater, finally " model in models”就是我们都知道的常规周期 .
希望这有助于某人,如果有,请投票:D
只需添加空值选项即可 . 它会工作 .
DEMO Plnkr
更简单的方法是使用data-ng-init这样:
这里的主要区别是你需要包括
data-ng-model
ng-model属性设置选定的选项,并允许您管理像orderBy:orderModel.value这样的过滤器
index.html
controllers.js
如果有人在Chrome,IE 10/11,Firefox的页面上偶尔没有填充默认值,请尝试将此属性添加到输入/选择字段中,检查HTML中的填充变量,如下所示:
如果您不关心使用某个数字ID索引选项,那真的很简单 .
祝好运!!!这真的很容易!