敲除绑定未正确发生
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));
我想通过敲除绑定数据,但数据绑定不正确 我已经通过 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));