2013-10-28 43 views
0

是否可以在淘汰賽foreach綁定中聲明一個javascript函數?我想從我的視圖模型之外的javascript函數生成一個列表。Knockout Foreach Javascript函數

<select class="form-control" data-bind="foreach: { data: function() { // return list values } }"> 
<option data-bind="text: Value, attr: { value: Value }"></option> 
      </select> 
+0

爲什麼ü要做到這一點?你想達到什麼目的? – Yogesh

+0

我試圖從全局定義的JavaScript列表中拉出。 – jspence

+1

你應該從你的虛擬機調用這個全局列表,它出於這個原因 – Anders

回答

1

不太確定你想用<option data-bind="text: Value, attr: { value: Value }"></option>達到什麼目的。

看看我的fiddle幾個不同的設置。它包含在select元素上綁定的optionsforeach的用法。

要回答這個問題,您需要在您的viewModel中提供一個函數來提供所需的數據。只要viewModel可以「訪問」數據,該函數就會將其提供給綁定。如果數據是文字的簡單列表,那麼所有需要:

的Javascript:

var listOfLiterals = function() { return ["One", "Two", "Three"] }; 

    var viewModel = { 
    selectedLiteral: ko.observable(), 
    getLiterals: function() { 
     return listOfLiterals(); 
    } 
} 

HTML:

<select data-bind="options: getLiterals(), value: selectedLiteral"></select>