我有以下通用代码。
MyClass.prototype.doSomething = function () {
$.ajax({
url: turl,
dataType: 'jsonp',
success: function (_this) { //closure
return function (data) {
_this._angular_scope.$apply(function () {
_this.property = // extract stuff from 'data'
_this.analyzeContent() // do more stuff with it
})
}
}(this)
})
}
基本上,这只是一个普通的 AJAX 调用。有个...
(1) 关闭“this”,以便成功函数可以访问我的对象及其状态
(2) 在内部,我返回一个对数据执行某些操作的函数,但是......
(3) 我希望 AngularJS 捕获成功所做的一切,因此解析数据的函数将进一步将其操作包装在 $apply 调用中。
这行得通,但我不禁想知道是否有更好的方法来实现这一点。由于嵌套函数的数量,我每次查看它时都必须考虑我在做什么。
这样可以吗,还是有更好的推荐风格?