Javascript 将控制器动态添加到angular应用程序
我在主干js应用程序中使用angular js。我有一个控制器(比如说controller1),它从一个主干视图(比如view1)添加到angular应用程序中。现在我添加了另一个控制器(比如controller2),它位于另一个主干视图(比如view2)。从view2中,我将控制器2添加到angular应用程序中。但是这里的控制器2的构造函数没有得到调用 视图1Javascript 将控制器动态添加到angular应用程序,javascript,angularjs,Javascript,Angularjs,我在主干js应用程序中使用angular js。我有一个控制器(比如说controller1),它从一个主干视图(比如view1)添加到angular应用程序中。现在我添加了另一个控制器(比如controller2),它位于另一个主干视图(比如view2)。从view2中,我将控制器2添加到angular应用程序中。但是这里的控制器2的构造函数没有得到调用 视图1 bootstarpAngular: function(){ var app = angular.module('A
bootstarpAngular: function(){
var app = angular.module('APP', []);
app.controller('Controller1', ['$scope', loadController1]);
angular.element(document).ready(function() {
this.angular = angular.bootstrap(document, ['APP']);
});
}
function loadController1($scope){
console.log("Controller1");
}
控制器1
bootstarpAngular: function(){
var app = angular.module('APP', []);
app.controller('Controller1', ['$scope', loadController1]);
angular.element(document).ready(function() {
this.angular = angular.bootstrap(document, ['APP']);
});
}
function loadController1($scope){
console.log("Controller1");
}
视图2
addController2: function(){
var app = angular.module('APP');
app.controller('Controller2', ['$scope', loadController2]);
}
function loadController2($scope){
console.log("Controller2");
}
控制器2
addController2: function(){
var app = angular.module('APP');
app.controller('Controller2', ['$scope', loadController2]);
}
function loadController2($scope){
console.log("Controller2");
}
此处,控制台日志仅为控制器1打印,不为控制器2打印
我要两个控制器都接到电话。我做错了吗?或者有更好的方法可以满足这一要求。在引导Angular的应用程序之前,您只能添加具有
控制器
功能的控制器
如果确实需要延迟加载控制器,可以在引导前执行以下操作:
app.config(function($controllerProvider) {
// globalCtrl must be a global function
globalCtrl = $controllerProvider.register;
});
在新模块中:
globalCtrl('Controller2', Controller2Fn);
通常有更好的解决方案来实现这一点,但我不知道您的具体情况。angular没有内置的惰性负载。在引导AngularAngular之前包括您的所有组件。backbone.js与此有什么关系。。?请不要添加不相关的标记Controller2需要一些数据,这些数据仅在view2中。View1没有必需的数据,因此我无法在View1中添加controller2。