1
在我的模型中,我成功加載了一些JSON,之後我只是將一個事件派發給正在監聽JSON的人。如何在我傳遞getJSON作爲成功回調的方法中引用我的對象?
我的問題是範圍。我發現'main'可以成功監聽模型(使用jQuery的觸發器方法)的唯一方法是使用jQuery別名爲範圍變量(在Model(ApplicationModel)函數內)添加前綴。
我的預感是我可能會錯過處理這種情況下的範圍問題。
主要:
require([ "jquery", "models/applicationModel", "views/applicationView" ], function($, ApplicationModel, ApplicationView) {
var appModel = new ApplicationModel();
$(appModel).on("jsonLoaded", onJsonLoaded);
appModel.getJson();
function onJsonLoaded(e, data) {
console.log('main: onJsonLoaded', data);
}
});
應用模型:
define([ "jquery" ], function($) {
function Model() {
$scope = this;
};
Model.prototype.getJson = function() {
$.getJSON("/getTextfields", this.loadSuccess);
};
Model.prototype.loadSuccess = function(data) {
console.log('loadSuccess', data);
$($scope).trigger("jsonLoaded", [ data ]);
}
return Model;
});
你在哪裏定義'$ scope'? –
$ scope在上面的ApplicationModel中的函數Model中定義。但是,解決方案由路易斯提供。 – user2190690