淘汰赛脚本没有打applyBindings
问题描述:
我有一个相当简单的屏幕,利用淘汰赛脚本。我有一个很奇怪的问题。淘汰赛脚本没有打applyBindings
我设置了QA/Staging/Production环境,并且我的屏幕在本地和我的QA环境中加载并完美运行。但是,当我将我的脚本和页面迁移到我的Staging服务器时,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);
});
答
我相信有在玩几件事情在这里。我创建了一个JSFiddle来演示工作的概念。
注意:为清楚起见,我删除了内部代码。
var vm = function() {
var thisVm = this;
console.log("inside view model");
};
$(document).ready(function() {
ko.applyBindings(new vm());
});
你已经排除了任何基础设施相关的问题,比如你的生产环境可能具有的缓存旧文件的代理服务器?或者您是否在机器上完整的浏览器缓存清理/刷新之后尝试使用它? –
我已经清除了服务器和客户机上的所有缓存。我可以看到那里的文件是正确的,并且所有的功能都被打了,它从来没有打过applyBindings。这是我见过的最奇怪的事情。 – Matt
我道歉,当我说“...迁移到我的生产服务器”我的意思是阶段。我编辑了我原来的帖子以反映这一点。 – Matt