小编dav*_*hue的帖子

Angular-Meteor - 如何在基于包的设计中包含ng模板?

我有一个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)

angularjs meteor angular-meteor meteor-packages

5
推荐指数
1
解决办法
1021
查看次数