2013-02-27 51 views
0

我不知道为什么我收到此错误:无法解析绑定optionsText

Uncaught Error: Unable to parse bindings. Message: ReferenceError: data is not defined; Bindings value: options: dateOptionsArray,optionsText: data,value: data knockout-2.2.1.debug.js:1936 ko.utils.extend.parseBindingsString

这种模式:

function ViewModel(jsonModel) { 

    var self = this; 
    self.dateOptionsArray = ["YYYY-MM-DD", "YYYY-MM-DD HH:MM"]; //todo make this dynamic 

在这个网站:

<select id="f" data-bind="options: dateOptionsArray,optionsText: data,value: data"></select> 

回答

2

第一你需要有一个名为data的房产,以便value约束性工作:

function ViewModel(jsonModel) { 

    var self = this; 
    self.dateOptionsArray = ["YYYY-MM-DD", "YYYY-MM-DD HH:MM"]; 
    self.data = ko.observable(); 

}; 

其次不需要optionsText。只有在数组中有复杂对象时才需要它,并且您要指定KO应该用于选择文本的属性。另见documentation

<select id="f" data-bind="options: dateOptionsArray, value: data"></select> 

演示JSFiddle

+0

很酷,但为什么呢? self.data = ko.observable();似乎冗余? – FutuToad 2013-02-27 17:45:35

+0

为什么它似乎还原剂?你需要一个属性(在本例中为'data')来保存'value'绑定中的选定值:'value:data' – nemesv 2013-02-27 17:48:08

+0

很酷,所以如果我这样做了:self.data = ko.observable(“YYYY- MM-DD HH:MM“);那么选择正确的选项? – FutuToad 2013-02-27 17:52:04