不能为ng-model的select设置默认值
can't set default value for select with ng-model
我试图设置<select>
字段数据的默认值,这是与$http
视图:
<select ng-options="dia for dia in ctrl.campos.dataNascimento.dias" ng-model="ctrl.diaSelected></select>
<select ng-options="mes for mes in ctrl.campos.dataNascimento.meses" ng-model="ctrl.mesSelected"></select>
<select ng-options="ano for ano in ctrl.campos.dataNascimento.anos" ng-model="ctrl.anoSelected"></select>
控制器:
getData.userFacul().then(function(curriculo){
var dataNascimento = perfilEstudante.curriculo.nascimento;
dataNascimento = dataNascimento.split('-');
perfilEstudante.mesSelected = campos.dataNascimento.meses[+dataNascimento[1]-1];
perfilEstudante.diaSelected = campos.dataNascimento.dias[+dataNascimento[2]-1];
由于getData.userFacul()
为$http请求服务。
我用{{}}
打印视图上的值,它们显示正确的值。select
框显示所有值,但第一个(默认值)为空。更改所选选项也会更改控制器上的变量。我只是不明白为什么我不能设置selectbox的默认值。当我尝试在$http请求之外设置它们时,它可以工作。什么好主意吗?
编辑:我做了一些测试,由于某种原因,当我在$http请求中声明选择框的ng-models时,这些值没有设置为视图的默认值。但是,在$http请求之外,它可以工作。
问题是Angular 不知道你已经更新了值,所以不执行文摘。为了"通知"Angular属性发生了变化,你可以使用$scope.$apply()
方法。像这样:
getData.userFacul().then(function(curriculo){
var dataNascimento = perfilEstudante.curriculo.nascimento;
dataNascimento = dataNascimento.split('-');
perfilEstudante.mesSelected = campos.dataNascimento.meses[+dataNascimento[1]-1];
perfilEstudante.diaSelected = campos.dataNascimento.dias[+dataNascimento[2]-1];
$scope.$apply();
});
相关文章:
- jQuery Datepicker从日期开始设置默认值
- 在KeystoneJS中为Types.Money设置默认值
- 如何为显示jquery滑块值的文本框设置默认值
- 在Bootstrap下拉菜单中设置默认值
- 如何为 jquery 自动完成框设置默认值
- 聚合物:如何为具有嵌套特性的图纸选项卡设置默认值
- 使用复杂对象上的删除为选择框手动设置默认值
- 在动态输入数据的下拉菜单中设置默认值
- 有什么方法可以在超级测试中设置默认值吗
- 挖空 + 选择2 -- 设置默认值
- ||运算符在 null 时不设置默认值
- 如何在 Select2 输入中设置默认值,并在 asp.net mvc 中标记
- 在链接回以前访问过的页面时设置默认值
- PHP 设置默认值以从 ajax 页面返回记录
- 在文档加载时使用 JQuery 在下拉字段中设置默认值
- 如何为 Google 放置 API 自动完成文本框设置默认值
- 为具有未定义值的嵌套对象设置默认值的最简单方法
- AngularJS更新ng-model的值以设置默认值
- 剑道 UI 组合框 - 设置默认值
- JQuery 日期选取器设置默认值