现有ASP.NET应用程序中的集成要求JS
我的任务是将RequireJS集成到已有AngularJS代码的大型ASP.NET应用程序中 该页面已在母版页中使用ng app='xxx'引导AngularJS。我正在尝试创建一个新的控制器,它将由RequireJS加载。 在HTML中,我定义新的div如下现有ASP.NET应用程序中的集成要求JS,asp.net,angularjs,requirejs,Asp.net,Angularjs,Requirejs,我的任务是将RequireJS集成到已有AngularJS代码的大型ASP.NET应用程序中 该页面已在母版页中使用ng app='xxx'引导AngularJS。我正在尝试创建一个新的控制器,它将由RequireJS加载。 在HTML中,我定义新的div如下 <div ng-controller='someConroller'></div> AngularJS启动后,RequireJS加载了someConroller.js,因此我得到以下错误: 参数'someCo
<div ng-controller='someConroller'></div>
AngularJS启动后,RequireJS加载了someConroller.js,因此我得到以下错误:
参数'someConroller'不是函数,未定义
据我所知,问题是AngularJS已启动,HTML已加载,但“someController”仍未加载
如何使AngularJS等待控制器完成加载
请注意,我无法集成路由
请告知。只有在加载someContoller时才需要引导项目,因此请执行以下操作:
require(['someController'], function(){
angular.bootstrap(document, ['xxx']);
});
在主文件中,删除母版页中的
ng app='xxx'
。这需要在引导项目之前加载someController。因为有很多遗留代码包括其他AngularJS代码,所以当加载someController时,我无法引导AngularJS。AngularJS使用已加载的,如果没有加载,则无法实例化控制器。由于您依赖于someController
加载,这是我能想到的唯一解决方案。。这就是requirejs的作用——管理依赖关系、提供模块化实体等等。在这种情况下,您的依赖项是someController
,因此任何代码执行都只能在加载时执行。我建议您要么按旧方法执行,要么按requirejs方法执行。同时使用这两种方法似乎对我的经验不起作用。