我创建了一个'Page Class'和一个相关的'load'方法。
加载完美,但我无法修改属性 在回调方法中的那个页面, 虽然我不能引用页面名称属性!!!
function Page(page) { this.page = page; this.firstLoad = true; this.pageName = this.page.split('.')[0].split('/')[1]; this.loaded = false; } Page.prototype.load = function () { var that = this; $("#content").html(); $("#content").load(this.page, function () { $.getScript("PagesViewModel/" + that.pageName + "ViewModel.js"); that.loaded = true; }); }
this.loaded总是假的!!!
感谢您的帮助
此致
答案 0 :(得分:0)
由于您的$.load
方法是异步的,当您的Page.prototype.load
方法返回时,this.loaded
将始终为false,并且在$.load
方法返回之前不会切换为true
所以,在这一行:
that.loaded = true;
loaded
的值在您设置之前将为false,而在之后为true。问题是在您的ajax请求完成之前已经返回Page.prototype.load
方法。您可以发布检查loaded
的价值的代码吗?
答案 1 :(得分:0)
您需要在执行外部ajax调用时全局定义实例。
function test(instancename){ this.instancename = instancename; this.sayHello = function(data){ alert("hello "+data); } $.getJSON(url, params, this.instancename+".sayHello"); } var k = new test("k");
由于响应来自其他来源,因此您需要全局定义您的实例。