我有一个使用Knockout脚本的相当简单的屏幕。我有一个非常奇怪的问题。
我设置了QA / Staging / Production环境,我的屏幕在本地和我的QA环境中加载并完美运行。但是,当我将脚本和页面迁移到我的临时服务器时,Knockout没有点击ko.applyBinding(vm)代码。它确实在我的QA服务器上完成。我正在使用Chrome调试工具在此时将其分解以进行验证。
这是我的代码,少了一些功能......
$(document).ready(function () {
vm = new function () {
var thisVm = this;
this.lastName = ko.observable(),
this.firstName = ko.observable(),
this.dob = ko.observable(),
this.cityList = ko.observable([])
//Load the CityList
this.loadCityList = function (callback) {
var data = {};
new ajaxJsonHelper().invoke("ServiceDelivery.aspx/GetCityList", data, vm.loadCityListCallback, showAjaxFailure, false);
}
this.loadCityListCallback = function (result) {
if (result.d != null) {
vm.cityList(result.d);
}
}
}
ko.applyBindings(vm);
});
答案 0 :(得分:0)
我相信这里有一些事情可以发挥作用。我创建了一个JSFiddle来演示这些概念。
注意:为清楚起见,我删除了内码。
var vm = function() {
var thisVm = this;
console.log("inside view model");
};
$(document).ready(function() {
ko.applyBindings(new vm());
});