0

ノックアウト foreach バインディングで JavaScript 関数を宣言することは可能ですか? ビュー モデルの外部で JavaScript 関数からリストを生成したいと考えています。

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

1 に答える 1

1

で何を達成しようとしているのかよくわかりません<option data-bind="text: Value, attr: { value: Value }"></option>

いくつかの異なるセットアップについては、私のフィドルをご覧ください。options要素に対するとforeachバインディングの両方の使用法が含まれていselectます。

質問に答えるには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>
于 2013-10-28T17:36:21.000 に答える