访问在不同.js文件中定义的Angular模块
Access Angular module defined in a different .js file
如何访问在不同.js文件中定义的角度模块?
背景:
我开始了angular js编程(在ASPNET MVC应用程序中)入门指南。
为了清楚起见,我在一个名为AspnetMvcAngular.js
文件的文件中创建了一个角度模块。
var AspnetMvcAngularJs = angular.module('AspnetMvcAngularJs', []);
然后,我在另一个文件(Scripts/Controllers/HomeController.js)中定义了角度控制器代码
AspnetMvcAngularJs.controller('HomeController', ['$scope', function ($scope) {
$scope.greeting = 'Hola!';
}]);
当应用程序运行时,它似乎无法识别AspnetMvcAngularJs
。
有什么关于我做错了什么的线索吗?
编辑:虽然下面的答案很好,但我注意到了一些至关重要的问题。
访问文件的顺序很重要
例如,我在ASP.NET-MVC中使用了bundles
,订单应该如下所示:
bundles.Add(new ScriptBundle("~/bundles/definitions").
Include("~/Scripts/AspnetMvcAngularJs.js").
IncludeDirectory("~/Scripts/Controllers", "*.js"));
这定义了首先包含angular module
的*.js
文件,然后包括其他*.js
控制器文件。
我犯的错误是先调用控制器文件。因此,运行时抛出一个错误,指定没有可用的此类模块。
您可以使用相同的angular.module
语法访问已定义的模块,但无需指定模块的依赖项。在这种情况下,你会得到定义的模块,然后你可以用它来创建控制器或其他角度组件
angular.module('AspnetMvcAngularJs').controller('HomeController',['$scope', function ($scope) {
$scope.greeting = 'Hola!';
}]);)
这是模块上原始角度文档的一句话:
创建与检索
注意使用
angular.module('myModule',[])
将创建模块myModule
并覆盖任何现有模块命名为CCD_ 13。使用
angular.module('myModule')
检索现有单元
无论使用创建语法还是检索语法,angular.module()
返回的都是angular.Module
类型的模块,其中方法controller(), service(), directive(), value(), factory()
等都返回模块本身。因此,您可以像下面这样将它们链接在一起:
angular.module('myModule', []).
value('a', 123).
controller( 'myController', function( $scope ) {...})
factory('a', function() { return 123; }).
directive('directiveName', ...).
filter('filterName', ...);
您也可以将模块分配给变量,然后稍后通过变量访问模块:
var myModule = angular.module('myModule', []);
// add some directives and services
myModule.service('myService', ...);
myModule.directive('myDirective', ...);
模块创建和模块访问代码可以放在单独的文件中。
- 自定义Angular.js过滤器在IE8中不返回任何内容,在Chrome/FF中运行良好
- 自定义 Angular 日期范围过滤器,以仅显示该日期范围内的项目
- 用于验证的自定义 Angular JS 指令
- 如何在angular指令的link函数中定义angular指令
- 自定义Angular指令,数据绑定不起作用
- 未定义Angular JS/文章
- 自定义angular指令没有渲染
- 自定义Angular窗口依赖
- 如何定义Angular指令必须是Angular中某个特定指令的子指令
- 如何在自定义angular指令中添加/设置验证(require, prestine等)
- 用菜单偏移量自定义Angular SlideAndPush指令
- 自定义angular js验证
- 自定义Angular指令来动态改变字体大小
- 为标签和属性组合创建一个自定义angular指令
- 当添加到项目中时,重新定义angular错误:' Error: $injector:modulerr '
- 将模型传递给自定义angular指令进行验证
- 在同一个表单上使用我自定义Angular JS指令的多个实例
- 我可以在自定义angular元素的html标签中传递参数吗?
- 自定义Angular$http序列化程序
- 为什么我得到的“服务没有定义”?angular页面中的错误信息