У меня сумасшедшая проблема с моим кодом. Я пытаюсь реализовать this jsfiddle codeСтранная проблема с привязкой данных
В моем коде, но у меня нет успеха. Вот что я сделал:
ViewModel:
viewModelInbox = function(){
query: ko.observable('');
var checked = false,
mainData = ko.observableArray([]),
showView = ko.observable(),
currentView = ko.observable(),
approve = function(){
},
disapprove = function(){},
toggle = function() {
if(checked){
$.each(mainData(), function(){
this.checkB(false);
});
checked = false;
return;
}
if(!checked){
$.each(mainData(), function(){
this.checkB(true);
});
checked = true;
return;
}
};
viewModelInbox.mainData = ko.dependentObservable(function() {
var search = this.query().toLowerCase();
return ko.utils.arrayFilter(viewModelInbox, function(test) {
return test.name.toLowerCase().indexOf(search) >= 0;
});
}, viewModelInbox);
return {
mainData: mainData,
showView: showView,
currentView: currentView,
approve: approve,
disapprove: disapprove,
toggle: toggle
};
},
mainData
наблюдаемого массив держат некоторые значения, как имя, код, дата и т.д.
Проблема у меня есть, что я «получаю эту ошибку:
TypeError: this.query is not a function
var search = this.query().toLowerCase();
Я уверен, что я что-то на самом деле небольшой отсутствует, но, как я полный п oob in knockoutjs Я не могу это заметить.
Я использую 2-ю структуру, но запятая (,), кажется, не работает. Он просит (;) вместо него. : s – Slim
, если вы используете 2-ю структуру, вы должны удалить «функцию» и использовать «:» вместо «=», –