2013-05-20 40 views
10

有没有人知道为什么在Angular中,选择选择器在没有ng模型的情况下无法工作?如果没有ng模型,角度选择不起作用

<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"/> 

上面的代码的第一行将工作,而第二行的代码将无法正常工作。 为什么?

谢谢!

回答

12

在Angular应用程序中使用select标记会生成ng-select指令,该指令是HTML SELECT元素加上角度数据绑定。展望本select指令的角源,这里有从link方法的前几行:

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

所以它实际上是建立在框架中止链接directive如果ngModel没有定义,因此没有绑定发生。

+1

谢谢!有道理! – TidharPeer

+0

任何解决方法?因为我们并不总是需要数据绑定... –

+0

@VishalKumarSahu - 你可以用一个虚拟变量提供'ng-model'。 – sh0ber