0

我正在尝试在我以后可以使用的 ajax 回调中设置模型的属性,但我不确定我是否可以这样做。

var self = this;

$.ajax {
   self.views.someProperty = // something i get back from the server

}

然后稍后用this.views.someProperty. 目前我得到 this.views.someProperty 未定义。我想知道我是否正确地处理了这个问题。

4

1 回答 1

0

首先,您的代码片段并没有真正的意义。 $.ajax()当它完成检索到的结果并且您的代码片段没有显示正确的形式时调用回调函数。

假设您正确指定了回调函数,这里还有一些其他可能的问题:

  1. 计时 - 在调用完成回调之后,ajax 调用的结果才可用。$.ajax()这是在调用之后的一段时间。结果将在 . 之后立即执行的代码中不可用$.ajax()

  2. 是否self.views已经存在?如果不是,那么设置self.views.someProperty将导致错误并且不起作用。

  3. 当您this.views.someProperty稍后访问时,您显然需要确保这this是正确的值。

console.log("ajax call finished")您可以在尝试访问该值之前通过在您的 ajax 完成回调中放入 a 和 a 来检查第一项,console.log("accessing someProperty")然后在尝试访问它之前验证是否调用了 ajax 完成。

您可以通过检查调试器中的数据来检查项目 2 和 3,以确保一切都是您想要的。

于 2013-03-25T16:53:46.090 回答