Knockout JS将绑定应用于observableArray

时间:2014-05-08 02:25:23

标签: knockout.js

function TweetModel(tweet) {
var self = this;
    this.tweet = ko.observable(tweet);
}

创建TweetModel对象后,它不会被推送到self.tweets。

.getJSON(someurl, function(data){
$.each(data, function (i, val) {
        var tweetModel = new TweetModel();
        tweetModel.tweet = data.key[0];
        self.tweets.push(tweetModel);
        //all could be compressed into self.tweets.push(new TweetModel(val)); 
}}

正在创建TweetModel对象,但self.tweets在调试时返回一个空列表。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先是

this.tweet = ko.observable(tweet);

上面的行将使tweet成为可观察变量而不是可观察数组,因此将其作为

  this.tweet = ko.observableArray();

尝试更改

function TweetModel() {
var self = this;
    this.tweet = ko.observable();
}

.getJSON(someurl, function(data){
$.each(data, function (i, val) {
        var tweetModel = new TweetModel();
        tweetModel.tweets.push(data.key[0]);
       //all could be compressed into self.tweets.push(new TweetModel(val)); 
}}