我有一个Angular-Meteor应用程序正在运行.我想将Angular模板和关联的控制器打包到Meteor包中,并通过添加该包将这些模板注入我的主应用程序.
什么是最好的方法?
更新2015-08-26 - 我想出了如何添加模板,如下所示.但是如何让Meteor包将模板的Angular控制器注入基础应用程序?
关键的搭配是Angular UI-router.
我有一个基本应用程序,其中包含名为packageprefix:packagename的包.在这个包中,我的代码位于包文件夹的根目录中:myPackagedPage.ng.html - Angular HTML模板myPackagedPage.js - 关联的Angular控制器
从我的主应用程序,我尝试创建一个到我的Angular模板的路由,如下所示:
angular.module('parentModule',[
'angular-meteor',
'ui.router',
'angularify.semantic.sidebar'
])
.config(['$urlRouterProvider', '$stateProvider', '$locationProvider',
function($urlRouterProvider, $stateProvider, $locationProvider){
console.log("app.js config!");
$locationProvider.html5Mode(true);
$stateProvider
.state('home', {
url: '/',
templateUrl: 'client/views/home/home.ng.html',
controller: 'HomeCtrl'
})
.state('myPackagedPage', {
url: '/myPackagedPage',
templateUrl: 'packageprefix_packagename/myPackagedPage.ng.html',
controller: 'MyPackagedPageCtrl'
})
;
$urlRouterProvider.otherwise('/');
}])
Run Code Online (Sandbox Code Playgroud)
应用程序成功找到myPackagedPage.ng.html文件并呈现它.但是如何添加控制器?
我尝试在我的包中添加它,但控制器函数不会被调用.
console.log("myPackagedPage.js loaded");
angular.module('parentModule')
.controller('MyPackagedPageCtrl', ['$scope',
function($scope){
console.log("MyPackagedPageCtrl");
}])
;
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Argument 'MyPackagedPageCtrl' is not a function, got undefined
Run Code Online (Sandbox Code Playgroud)