0

我有几个模块需要在使用模块时加载一些模板部分。我将这些文件存储在每个模块子文件夹内的一个名为 partials 的文件夹中。我的应用程序的起点是meanjs,我将部分文件存储在 public/modules//partials/*.html 中。

我已经看过几个 ng-include 和指令示例,但是对于 AngularJS 的新手来说,我阅读的每个示例都让我更加困惑,什么是最佳实践/最适合 AngularJS 的方法来做到这一点。

4

2 回答 2

4

随时存储您的部分。要加载它们都使用 angular template cache

使用 Grunt 或 gulp 自动生成。我个人使用 gulp。

这是我的一个项目的工作示例。

安装 nodejs 和 npm

npm intall gulp -g

npm install gulp-angular-templatecache

创造gulpfile.js

var templateCache = require('gulp-angular-templatecache'),
    watch = require('gulp-watch');

gulp.task('generate', function () {
    gulp.src('public/*/partials/*.html')
        .pipe(templateCache('templates.js', {module: 'YOURMODULENAME', standalone: false}))
        .pipe(gulp.dest('public/js'));
});
 gulp.task('watch-partials', function () {
    gulp.watch('public/*/partials/*.html', ['generate']);
});

然后像这样使用它:

gulp generate- 重新生成部分

gulp watch-partials- 监视文件更改,如果部分更改,它会自动generate为您运行任务。:)

还有一件事,不要忘记在你的 html 文件中包含 template.js

<script src="public/js/template.js"></script>

每次更改部分时不要忘记重新生成模板缓存。

于 2014-11-19T10:15:23.853 回答
1

您应该利用$templateCache. 在您的 partials 文件夹中定义如下模板:

angular.module('yourTemplateModule', []).run('$templateCache', function ($templateCache) {
   $templateCache.put('yourTemplate', '<div>...some HTML here...</div>');
}

然后创建一个名为“app.tpls”的模块,它具有所有模板模块的依赖项。将它作为依赖注入到您的主应用程序模块中,可能位于meanjs中,现在您可以在应用程序中需要它们时准备好模板。您可以通过调用来检索它们:

$templateCache.get('yourTemplate');
于 2014-11-19T10:30:29.713 回答