无法获得$ templateCache工作

时间:2014-04-06 10:27:38

标签: angularjs

我正在使用gulp-angular-templatecache创建一个包含所有模板的模块。这很好用,我得到一个这样的模块:

angular.module("starter.templates").run(["$templateCache",
  function($templateCache) {
    $templateCache.put("searchmachines.html",
        // searchmachines.html content
    );
    // etc.
  }
]);

但是当我尝试将其包含在我的应用中时,我收到此错误:

  

未捕获错误:[$ injector:nomod]模块'starter.templates'不是   可以!您要么错误拼写了模块名称,要么忘记加载它。   如果注册模块,请确保将依赖项指定为   第二个论点

在我的index.html头中,我有这个:

<head>
    /* other stuff */
    <script src="templates/templates.js"></script>
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
    <script src="js/services.js"></script>
    <script src="js/filters.js"></script>
</head>

在我的app.js中我得到了这个:

angular.module('starter', [
  'ionic',
  'starter.controllers',
  'starter.services',
  'starter.filters',
  'starter.templates'
])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
    window.location.href = '#/app/maincategories';
  });
})

.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider

    .state('app', {
      url: "/app",
      abstract: true,
      templateUrl: "templates/menu.html",
      controller: 'AppCtrl'
    })

    .state('app.showmachine', {
      url: "/showmachine",
      views: {
        'menuContent' :{
          templateUrl: "templates/showmachine.html",
          controller: 'ShowMachinesCtrl'
        }
      }
    })
  //more routes...
  $urlRouterProvider.otherwise('/app/searchmachines');
});

我做错了什么?

1 个答案:

答案 0 :(得分:24)

问题在于,默认情况下,gulp-angular-templatecache不会创建独立模块。我完全错过了......通过传递选项:standalone:true一切正常:

gulp.task('default', function () {
    gulp.src('./www/templates/**/*.html')
        .pipe(templateCache('templatescache.js', { module:'templatescache', standalone:true, root: './templates/' }))
        .pipe(gulp.dest('./www/templates/'));
}); 

然后在app.js中添加依赖项:

angular.module('starter', [
  'ionic',
  'starter.controllers',
  'starter.services',
  'starter.filters',
  'templatescache'
])