敲除绑定未正确发生

Knockout Binding not happen correctly

我想通过敲除绑定数据,但数据绑定不正确 我已经通过 ajax 获取数据并成功将其放入 self.DisplayItem 对象中 但是绑定中的问题仅在 div

中未显示数据的地方

这是javascript代码:

function CustomItem(prams) {
    var self = this;
    self.Id = ko.observable(prams.Id || 0);
    self.Name = ko.observable(prams.Name || "");
    self.Title = ko.observable(prams.Title  || "");
}

function BaseViewModel() {
   var self = this;
   self.DisplayItem = ko.observable(null);
   
   self.DisplayItem = new CustomItem({
      Id: 0,
      Name : "",
      Title : ""
   });
  
   self.GetDetails = function (Id) {

       $.ajax({
          type: "POST",
          url: URL + 'Customer/GetDetails/' + Id,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (data) {
             self.DisplayItem = new CustomItem(data);
          },
      });

  };

  ko.applyBindings(self);
}

Html代码:

<button data-bind="click: $root.GetDetails">Show Data</button>

<div class="row">
    <div class="col-lg-2">
       <div><label class="control-label">Name</label></div>
       <div data-bind="text: DisplayItem.Name"></div>
    </div>
    <div class="col-lg-2">
       <div><label class="control-label">Title</label></div>
       <div data-bind="text: DisplayItem.Title"></div>
   </div>
</div>

您正在通过分配给可观察的属性来覆盖可观察的功能。

相反,将分配的值传递给 function,可观察的 属性 变为:

self.DisplayItem(new CustomItem({
   Id: 0,
   Name : "",
   Title : ""
}));

当您获取数据后:

self.DisplayItem(new CustomItem(data));

参考 reading and writing observables