无法通过绑定填充数据

时间:2014-10-10 10:27:35

标签: html5 knockout.js sammy.js

这是我第一次尝试使用HTML5制作单页应用程序。我正在使用jquery,knockout和sammy。

代码:http://codepaste.net/apdrme

问题是我不知道我做错了什么。我知道它是以下内容:

                this.get("#/", function() {                
                    this.personList(this.persons);
                });

但我还能如何填充清单呢?

2 个答案:

答案 0 :(得分:0)

您通常会使用jQuery和ajax调用来填充personList。 personList应该是ko.observableArray。

this.personList = ko.observableArray();

this.get("#/", function() {                
    $.ajax({url:"/api/persons/", dataType: 'json', success:function(persons){
        this.personList(persons);
    }});
});

答案 1 :(得分:0)

您可以按如下方式填充列表:

function ViewModel() {    
    this.personList = ko.observableArray([{"name":"Josh"}, {"name":"Barry"}, {"name":"Mike"}]);
};
[...]
ko.applyBindings(new ViewModel());

注意在声明中使用ko.observableArray()。因此,您也可以删除参数并在主Sammy路线中调用this.personList([{"name":"Josh"}, {"name":"Barry"}, {"name":"Mike"}])并使用其他路线中的其他值填充列表。

另一个错误是你使用了这里不需要的带绑定。查看documentation about it