【问题标题】:Create ko.observableArray from JSON object in Knockout JS从 Knockout JS 中的 JSON 对象创建 ko.observableArray
【发布时间】:2022-11-02 11:57:13
【问题描述】:

我已将 JSON 对象加载到我的视图模型中。我想把它推到一个 observableArray 中。

function viewModel()
{
    var self = this;
    self.details = [{"id":1,"first_name":"fname1","last_name":"lname1","salary":1000.0},
                    {"id":2,"first_name":"fname2","last_name":"lname2","salary":2000.0},
                    {"id":3,"first_name":"fname3","last_name":"lname3","salary":3000.0}];

    self.emp = ko.observableArray([new Model(self.details[0]),new Model(self.details[1]),new Model(self.details[2])]);
    
    //This method works, but is very inefficient... 

}
ko.applyBindings(new viewModel());

我找到的解决方案是单独喂养每个元素,这是不切实际的。

我正在使用 JQuery。我找到了一些使用 knockout.mapping 插件的解决方案。但我无法将该插件正确添加到我的 Eclipse 工作区。

我是新来的淘汰赛。请帮助我找到将整个对象添加到 observableArray 的解决方案。

【问题讨论】:

    标签: json knockout.js


    【解决方案1】:

    我可能会亲自使用映射插件,但这也应该有效

    function viewModel()
    {
        var self = this;
        self.details = [{"id":1,"first_name":"fname1","last_name":"lname1","salary":1000.0},
                        {"id":2,"first_name":"fname2","last_name":"lname2","salary":2000.0},
                        {"id":3,"first_name":"fname3","last_name":"lname3","salary":3000.0}];
                        
        var mapped = self.details.map(m => new Model(m));
        //or
        //var mapped = self.details.map(function(m) {return new Model(m);});
        
        self.emp = ko.observableArray(mapped);
    }
    ko.applyBindings(new viewModel());
    

    【讨论】:

      猜你喜欢
      • 2012-04-05
      • 2018-09-08
      • 2014-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      • 2018-09-10
      相关资源
      最近更新 更多