【问题标题】:Knockout Object Binding淘汰赛对象绑定
【发布时间】:2013-01-09 00:30:37
【问题描述】:

执行 GET,返回一个对象。想知道绑定这个的正确方法是什么:

var self = this;
$.getJSON("/api/contentsummary",
                        function (data) {
                            self.contentSummary =data.contentSummary;

                        });

要使其正常运行,我需要在每次分配后进行绑定。当 GET 函数返回一个对象时,正确的方法是什么?

【问题讨论】:

  • 你的意思是每次赋值都需要调用ko.applyBindings?

标签: javascript binding knockout.js mapping


【解决方案1】:

使用Knockout mapping plugin

var self = this;

$.getJSON("/api/contentsummary", function (data) {
    self.contentSummary = ko.mapping.fromJS(data.contentSummary);
});

【讨论】:

  • 好的,完成:可以从控制台访问 self.contentSummary.Count()。如何访问视图中的对象,没有得到任何数据:<label for="Count">Count: <span data-bind="text: contentSummary.Count"></span></label>
  • 我想更好的问题是,是否需要在每个 mapping.fromJS 之后应用绑定?
  • @user1959772 - 是的。检查文档(链接在答案中)。要使用新数据更新模型,请使用:ko.mapping.fromJS(data.contentSummary, self.contentSummary);
  • 缺少一些东西:self.Statuses = ko.observableArray(); $.getJSON("/api/Statuses", function (data) { self.Statuses = ko.mapping.fromJS(data.Statuses); ko.applyBindings(self); }); } <div id="ViewDirectories" data-bind="foreach: Status"> <span data-bind="text: Suffix"></span> </div>
  • 想知道如何完成以下操作:jsfiddle.net/atwoodkevin/q8EKP
猜你喜欢
  • 1970-01-01
  • 2013-02-04
  • 2013-10-31
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多