2013-05-20 65 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