我希望代码尽可能结构化,现在我的所有控制器和路由都保存在同一个文件中。我正在使用laravel 4.2作为后端,并为应用程序的前端部分使用模板和角度。
这就是角度脚本现在的样子:
var Application = angular.module('ReporterApplication', ['ngRoute', 'ui.select', 'ngSanitize'], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
});
Application.config(function($routeProvider) {
$routeProvider
.when('/packing/scan.html', {
templateUrl: 'packing/scan.html',
controller: 'PackingScanController'
})
[ .... ]
});
Application.controller('BootstrapController', ['$scope', function($scope) {
[ ... ]
}]);
Application.controller('OrdersTrackerController', ['$scope', '$http', function($scope, $http) {
[ ... ]
}]);
在Bootstrap.blade.php中,我有应用程序的基础,我使用一个角度视图来生成内容。我试图使用刀片来包含所需的js文件,其中包含模块的控制器但是会破坏角度
像这样:Scan.blade.php
@head
{{ HTML::script('/src/Packing/Scan.js') }}
@stop
php and angular html code here
答案 0 :(得分:1)
您可以创建一个额外的模块,例如:
angular.module('ReporterApp.Controllers', [ /* dependencies here */])
然后你可以做.controller(......等......)。然后将此模块注入“main”模块。这样,您可以在ReporterApp.Controllers模块中拥有包含不同控制器的不同文件。
一个简单的例子:
文件1:
angular.module('ReporterApp.Controllers')
.controller('myCtrl', ['$scope', function($scope) {
/* code here */
}]);
文件2:
angular.module('ReporterApp.Controllers')
.controller('mySecondCtrl', ['$scope', function($scope) {
/* code here */
}]);
然后是一个模块文件(对于额外的结构位,例如,如果你有其他文件,你需要在一个单独的模块中的服务)modules.js:
angular.module('ReporterApp.Controllers', [ /*dependencies here */ ]);
angular.module('ReporterApp.Services', [ /* dependencies here */]);
最后你的主app.js:
var myApp = angular.module('ReporterApplication',
['ReporterApp.Controllers', 'ReporterApp.Services']);
为了使其正常工作,尽管包括很多事情的顺序。确保首先包含module.js文件,以便创建模块,然后创建包含控制器的文件,然后是服务,最后是app.js!