Jos*_*sis 4 javascript angularjs
我开始使用angular,我怎么能将代码从一个应用程序分解成多个文件?我看了60分钟的介绍,他们提到我可以在没有requirejs或任何其他框架的情况下执行此操作.
让我们说我有这样的东西工作得很好:
var app = angular.module('app', []);
app.factory('ExampleFactory', function () {
var factory = {};
factory.something = function(){
/*some code*/
}
return factory;
});
app.controller ('ExampleCtrl', function($scope, ExampleFactory){
$scope.something = function(){
ExampleFactory.something();
};
});
app.config(function ($routeProvider) {
$routeProvider
.when('/',
{
controller: 'ExampleCtrl',
templateUrl: 'views/ExampleView.html'
})
.otherwise({ redirectTo: '/' });
});
Run Code Online (Sandbox Code Playgroud)
如果我想将它放在单独的文件中怎么办?像这样
文件一:
angular.module('factoryOne', [])
.factory('ExampleFactory', function () {
var factory = {};
factory.something = function(){
/*some code*/
}
return factory;
});
Run Code Online (Sandbox Code Playgroud)
文件二:
angular.module('controllerOne', ['factoryOne'])
.controller ('ExampleCtrl', function($scope,ExampleFactory){
$scope.something = function(){
ExampleFactory.something();
};
});
Run Code Online (Sandbox Code Playgroud)
档案三:
angular.module('routes', ['controllerOne'])
.config(function ($routeProvider) {
$routeProvider
.when('/',
{
controller: 'ExampleCtrl',
templateUrl: 'views/ExampleView.html'
})
.otherwise({ redirectTo: '/' });
});
Run Code Online (Sandbox Code Playgroud)
档案四:
var app = angular.module('app', ['routes']);
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这样做但它不起作用.我可以做这样的事情,只在主视图中有一个文件四的脚本标签吗?或者每个文件都必须有一个脚本标记?谢谢你的帮助.
AngularJS目前没有脚本加载器作为框架的一部分.为了加载依赖项,您需要使用第三方加载器,例如RequireJS,script.js等.
根据文件(http://docs.angularjs.org/guide/module#asynchronousloading):
异步加载
模块是管理$ injector配置的一种方式,与将脚本加载到VM无关.现有的项目处理脚本加载,可以与Angular一起使用.由于模块在加载时不执行任何操作,因此可以按任何顺序将其加载到VM中,因此脚本加载器可以利用此属性并并行化加载过程.
...或者,正如@xanadont所解释的那样,您可以<script>为每个文件添加标签.
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |