我目前正在通过模块化模式处理应用程序。
我目前遇到的问题是,一旦Ajax完成,我希望能够在对象中触发一个函数。我可以看到的对象,但是当我指定一个函数时,它会失败并返回未定义。
JS
var TestCase = {
settings: {
cu: $('.select'),
},
init: function() {
se = this.settings;
},
windowsReady: function() {
TestCase.init();
if ($.fn.selectBox) {
TestCase.selectBind();
}
},
ajaxComp: function() {
TestCase.init();
TestCase.selectBind();
},
selectBind: function(){
se.cu.selectBox();
},
};
JS Fire - 当selectBind通过就绪调用加载时,它可以正常工作。但是,如前所述,ajaxcomplete将继续作为TestCase.ajaxComp();
的未定义或直接调用TestCase.selectBind();
。请注意,当我console.log(TestCase)
时,它会列出所有对象。
$(document).ready(function () {
TestCase.windowsReady();
});
$(document).ajaxSuccess(function() {
console.log(TestCase);
TestCase.ajaxComp();
console.log('completed');
});
答案 0 :(得分:0)
这是因为这一行:
app.controller('Customer', function($scope) {
$scope.CustomerName = "Shiv";
$scope.CustomerCode = "1001";
$scope.Add = function () {}
$scope.Update = function () {}
});
se = this.settings;
方法范围内的this
将是jQuery对象,而不是TestCase对象。
尝试将其更改为$(document).ajaxSuccess(...)