【发布时间】:2017-05-20 05:14:47
【问题描述】:
我试图让我的 observableArray 按字母顺序排序,并在单击“排序”时向列表中添加一个新项目。谁能解释一下我在这里做错了什么?
谢谢,
杰森
.......................
https://jsfiddle.net/jaloomis111/tssLxbo0/
<input data-bind="value: inputName, valueUpdate: 'afterkeydown'" type="text"/>
<ul data-bind="foreach: myFamily"/>
<li data-bind="text: name"></li>
</ul>
<button data-bind="click: addItem">add item</button>
<button data-bind="click: sortArray">sort array</button>
$(function(){
var data = [
{name: 'Jason'},
{name: 'Alexi'},
{name: 'Gabi'}
];
viewModel = {
inputName: ko.observable(""),
myFamily : ko.observableArray(data),
//addItem : function(){
//this.myFamily.push({name: this.inputName()});
//this.inputName("");
//},
addItem : function() {
this.myFamily.push({name: this.inputName()});
},
removeItem : function(){
this.myFamily.pop();
},
sortArray : function(){
this.myFamily.sort(function (left, right) {
return left.name == right.name ? 0 : (left.name < right.name ? -1 : 1)
})
},
};
ko.applyBindings(viewModel);
});
【问题讨论】:
标签: knockout.js