没有 ng-model AngularJS 选择不起作用

Posted

技术标签:

【中文标题】没有 ng-model AngularJS 选择不起作用【英文标题】:AngularJS select doesn't work without ng-model 【发布时间】:2013-05-14 17:24:15 【问题描述】:

有谁知道为什么在 AngularJS 中,select 选择器在没有 ng-model 的情况下无法工作?

<select ng-model="bla_bla" ng-options="obj.value as obj.key for obj in languages"/>
<select ng-options="obj.value as obj.key for obj in languages"/>

上面的第一行代码可以工作,而第二行代码不能工作。 为什么???

谢谢!

【问题讨论】:

【参考方案1】:

在 Angular 应用程序中使用 select 标记会生成 ng-select 指令,这是一个 html SELECT 元素加上 Angular 数据绑定。查看这个select 指令的Angular 源代码,这里是它的link 方法的前几行:

link: function(scope, element, attr, ctrls) 
    // if ngModel is not defined, we don't need to do anything
    if (!ctrls[1]) return;
    ...

所以如果ngModel没有定义,它实际上是内置到框架中来中止链接directive,所以没有绑定发生。

【讨论】:

@VishalKumarSahu - 你可以为ng-model 提供一个虚拟变量。 将保存数据 @VishalKumarSahu 显然。但是您不必使用数据,这就是为什么它是一个“虚拟”变量。如果您不清楚,您应该提出一个新问题。

以上是关于没有 ng-model AngularJS 选择不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs:在更新ng-model时选择不更新

使用 ng-model 时 AngularJS $scope 不更新(ng-change 触发?)

AngularJS 将 datatimepicker 选择的值绑定到 ng-model

ng-model 不适用于 AngularJS 中的单选按钮

如何在angularjs中的选择框或内部选项中使用ng-model?

AngularJs - SELECT 中的 ng-model