当我尝试以通常的方式创建angularjs模块时,它工作得很完美,但是当我尝试在aync函数调用的回调函数中执行相同的代码时,它会抛出错误,找不到模块:
以下代码可以正常使用:
var myApp = angular.module('SSApp',[]);
myApp.controller('config', function($scope) {
});
但是抛出错误:
Init_Data(function() {
initApp();
});
function initApp() {
var myApp = angular.module('SSApp',[]);
myApp.controller('config', function($scope) {
});
}
function Init_Data(callback) {
chrome.storage.local.get(null, function(data) {
window.data = data;
callback();
});
}
我在相应的html代码中定义了ng-app="SSApp"
指令。
答案 0 :(得分:1)
你的代码没有按照你的期望做的原因是因为,Angular试图引导模块" SSApp" DOM准备好后自动完成。但是,在尝试执行此操作时,找不到JavaScript代码定义的此类模块。
你的HTML中可能有ng-app="SSApp"
,这就是Angular尝试自动引导模块的原因。
您可以通过删除ng-app指令并执行
来选择手动引导模块 angular.bootstrap(document.documentElement, ['SSApp']);
答案 1 :(得分:0)
这是你必须做的改变:
var myApp = angular.module("SSApp", []);
Init_Data(function () {
initApp();
});
function initApp() {
myApp.controller('config', function ($scope) {
});
console.log(myApp)
}
function Init_Data(callback) {
setTimeout(function () {
callback();
},4000);
}
根据我在您的代码中的理解,首先您要加载数据然后将配置控制器添加到您的应用程序...所以首先定义您的应用程序然后在回调配置中