มีวิธีฉีดการพึ่งพาในช่วงปลายให้กับโมดูลเชิงมุมที่บูตแล้วหรือไม่? นี่คือสิ่งที่ฉันหมายถึง:
สมมติว่าฉันมีแอปเชิงมุมทั่วทั้งไซต์ซึ่งกำหนดเป็น:
// in app.js
var App = angular.module("App", []);
และในทุกหน้า:
<html ng-app="App">
ต่อมาฉันกำลังเปิดแอปอีกครั้งเพื่อเพิ่มตรรกะตามความต้องการของหน้าปัจจุบัน:
// in reports.js
var App = angular.module("App")
App.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
ตอนนี้พูดได้ว่าหนึ่งในบรรดาบิตตามความต้องการของตรรกะยังต้องพึ่งพาตัวเอง (เช่นngTouch
, ngAnimate
, ngResource
ฯลฯ ) ฉันจะแนบเข้ากับแอพพื้นฐานได้อย่างไร ดูเหมือนจะไม่ได้ผล:
// in reports.js
var App = angular.module("App", ['ui.event', 'ngResource']); // <-- raise error when App was already bootstrapped
ฉันรู้ว่าฉันสามารถทำทุกอย่างล่วงหน้าได้นั่นคือ -
// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
หรือกำหนดทุกโมดูลด้วยตัวเองจากนั้นฉีดทุกอย่างลงในแอปหลัก ( ดูข้อมูลเพิ่มเติมที่นี่ ):
// in reports.js
angular.module("Reports", ['ui.event', 'ngResource'])
.controller("ReportsController", ['$scope', function($scope) {
// .. reports controller code
}])
// in home.js
angular.module("Home", ['ngAnimate'])
.controller("HomeController", ['$scope', '$http', function($scope, $http){
// ...
}])
// in app.js, loaded last into the page (different for every page that varies in dependencies)
var App = angular.module("App", ['Reports', 'Home'])
แต่สิ่งนี้จะทำให้ฉันต้องเริ่มต้นแอพทุกครั้งด้วยการอ้างอิงของเพจปัจจุบัน
ฉันชอบที่จะรวมถึงพื้นฐานapp.js
ในทุกหน้าและก็แนะนำส่วนขยายที่จำเป็นต้องใช้ในแต่ละหน้า ( reports.js
, home.js
ฯลฯ ) โดยไม่ต้องแก้ไขทุกตรรกะความร่วมมือฉันจะเพิ่มหรือสิ่งที่ลบ
มีวิธีแนะนำการอ้างอิงเมื่อแอปบูตแล้วหรือยัง? อะไรเป็นสำนวน (หรือวิธี) ในการทำสิ่งนี้? ฉันกำลังเอนเอียงไปทางวิธีแก้ปัญหาหลัง แต่ต้องการดูว่าวิธีที่ฉันอธิบายสามารถทำได้หรือไม่ ขอบคุณ.