ฉันใช้แม่แบบเมล็ดเชิงมุมเพื่อจัดโครงสร้างแอปพลิเคชันของฉัน เริ่มแรกฉันใส่โค้ด JavaScript ทั้งหมดลงในไฟล์เดียว, main.js
. ไฟล์นี้มีการประกาศโมดูลตัวควบคุมคำสั่งตัวกรองและบริการของฉัน แอปพลิเคชันทำงานได้ดีเช่นนี้ แต่ฉันกังวลเกี่ยวกับความสามารถในการปรับขนาดและการบำรุงรักษาเนื่องจากแอปพลิเคชันของฉันมีความซับซ้อนมากขึ้น ฉันสังเกตเห็นว่าเทมเพลต angular-seed มีไฟล์แยกกันสำหรับแต่ละไฟล์ดังนั้นฉันจึงพยายามกระจายรหัสของฉันจากmain.js
ไฟล์เดียวไปยังไฟล์อื่น ๆ ที่กล่าวถึงในชื่อสำหรับคำถามนี้และพบในapp/js
ไดเร็กทอรีของangularแม่แบบเมล็ด
คำถามของฉันคือฉันจะจัดการการอ้างอิงเพื่อให้แอปพลิเคชันทำงานได้อย่างไร เอกสารที่มีอยู่ที่พบที่นี่ไม่ชัดเจนในเรื่องนี้เนื่องจากแต่ละตัวอย่างที่ให้มาแสดงไฟล์ต้นฉบับ JavaScript ไฟล์เดียว
ตัวอย่างของสิ่งที่ฉันมีคือ:
app.js
angular.module('myApp',
['myApp.filters',
'myApp.services',
'myApp.controllers']);
controllers.js
angular.module('myApp.controllers', []).
controller('AppCtrl', [function ($scope, $http, $filter, MyService) {
$scope.myService = MyService; // found in services.js
// other functions...
}
]);
filter.js
angular.module('myApp.filters', []).
filter('myFilter', [function (MyService) {
return function(value) {
if (MyService.data) { // test to ensure service is loaded
for (var i = 0; i < MyService.data.length; i++) {
// code to return appropriate value from MyService
}
}
}
}]
);
services.js
angular.module('myApp.services', []).
factory('MyService', function($http) {
var MyService = {};
$http.get('resources/data.json').success(function(response) {
MyService.data = response;
});
return MyService;
}
);
main.js
/* This is the single file I want to separate into the others */
var myApp = angular.module('myApp'), []);
myApp.factory('MyService', function($http) {
// same code as in services.js
}
myApp.filter('myFilter', function(MyService) {
// same code as in filters.js
}
function AppCtrl ($scope, $http, $filter, MyService) {
// same code as in app.js
}
ฉันจะจัดการการอ้างอิงได้อย่างไร
ขอบคุณล่วงหน้า.