我正在使用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');
});
我做错了什么?
答案 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'
])