【问题标题】:Knockout.js - Doesn't seem to bind properly, can't figure out whyKnockout.js - 似乎没有正确绑定,不知道为什么
【发布时间】:2016-12-16 15:25:38
【问题描述】:

我确定这是一个简单的解决方法,但我正在努力解决这个问题。

下面是代码的主要部分。

JS

//Viewmodel
var PurchaseOrderModel = function () {
    var self = this;

    self.OrderNumber = ko.observable();
    self.Description = ko.observable();

    self.GetPurchaseOrder = function(Id) {
        //
        $.ajax({
            type: "GET",
            url: 'URL' + Id,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                self.OrderNumber = ko.observable(data.OrderNumber);
                self.Description = ko.observable(data.Description);
            },
            error: function (err) {
                alert(err.status + " : " + err.statusText);
            }
        });
    }
}

//DOM Loaded
$(document).ready(function () {
    var po = new PurchaseOrderModel();
    ko.applyBindings(po);

    po.GetPurchaseOrder(124028);
});

HTML

<div>
    <input id="test" type="text" data-bind="value: OrderNumber">
    <input type="text" data-bind="value: Description">

    <p type="text" data-bind="text: OrderNumber"></p>
</div>

控制器

return Json(new
    {
        OrderNumber = model.OrderNumber,
        Description = model.Description
    }, JsonRequestBehavior.AllowGet);

这是我在检查器“网络”选项卡中看到的内容

{"OrderNumber":115548,"Description":"Test"}

所以数据正在返回,我只是想知道为什么 UI 没有正确捕获/绑定。

感谢任何见解!

【问题讨论】:

    标签: asp.net knockout.js


    【解决方案1】:

    而不是像您在这里那样用新的 observable 替换旧的 observable:

    success: function (data) {
      self.OrderNumber = ko.observable(data.OrderNumber);
      self.Description = ko.observable(data.Description);
    }
    

    你必须设置你已经用一个新值定义的observable,像这样:

    success: function (data) {
      self.OrderNumber(data.OrderNumber);
      self.Description(data.Description);
    }
    

    【讨论】:

    • 谢谢 :) 知道这很容易解决,但不知道如何获得它。
    猜你喜欢
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多