我刚开始使用knockout.js
,在尝试显示JSON数据时遇到困难。
我的HTML
<p>Dealer Location: <input id="dealerlocation" data-bind="value: DealerLocation" /></p>
<p>Contact Report Date: <input id="crdate" data-bind="value: CRDate" /></p>
我的脚本块
function viewAction() {
var self = this;
self.DealerLocation = ko.observable("");
self.CRDate = ko.observable("");
};
var viewActionModel = new viewAction();
function GetActionByID() {
$.ajax({
type: "POST",
url: "/ws/someservice.asmx/GetAction",
data: "{pacid: '" + $('input[id$=hidActionID]').val() + "'}",
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (response) {
var action = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
$.each(action, function (index, axn) {
viewActionModel.DealerLocation = axn.DealerLocation;
viewActionModel.CRDate = axn.CRDate;
});
}
});
}
$(document).ready(function () {
GetActionByID();
//alert(viewActionModel.DealerLocation);
ko.applyBindings(viewActionModel);
});
注意:如果我取消注释警告,那么applyBinding会起作用,否则就不起作用。
这里缺少什么???
Ragards。
答案 0 :(得分:2)
这是分配可观察对象的错误方法。
viewActionModel.DealerLocation = axn.DealerLocation;
viewActionModel.CRDate = axn.CRDate;
这样做。
viewActionModel.DealerLocation(axn.DealerLocation);
viewActionModel.CRDate(axn.CRDate);
通过执行您现在所做的操作,您将使用常规变量替换observable。它正在处理警报,因为这种替换发生在绑定之前,淘汰赛只是拿起你的常规变量。阅读有关可观察量的更多信息。