2013-10-28 103 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>