2016-05-30 85 views
0

我正在通過gulp來縮小一個角度項目。該項目包含index.html,css,libraries,app.js(包含路由層+控制器的Angular模塊)和視圖。縮小包含路由的js文件

我可以很容易地縮小+ CONCAT所有的JS文件,庫和CSS文件合併成一個包file.HTML文件也很容易精縮,但問題是我有路由在我app.js這使templateUrl像

.state('dashboard.home', { 
       url: '/home', 
       templateUrl: 'app/views/dashboard/home.html' 
      }) 

現在,因爲這個路由我不能將所有的html文件合併爲一個,因爲每條路由都會使用文件名來呈現一個視圖,而只有一個文件命名爲bundle.html。

在這裏,我需要一個關於如何處理這種情況的指南。

感謝問候

回答

0

我使用gulp-ng-template此:

gulpfile.js:

var ngTemplate = require('gulp-ng-template'); 

.... 

gulp.task('templates', function() { 
    return gulp.src(['view1.html', 'view2.html']) 
    .pipe(ngTemplate({filePath: 'js/tpl.js'})) 
    .pipe(gulp.dest('test')); 
}); 

ngTemplate結合你的意見,並將它們放入單個文件js/tpl.js,這將是這樣的:

angular.module('ngTemplates').run(['$templateCache', function($templateCache) { 
    $templateCache.put('view1.html', '<div class="test">A</div>\n'); 
    $templateCache.put('view2.html', '<div class="test">\n <span>B</span>\n</div>\n'); 
}]); 

現在您只需要將此文件包含到index.html中。您的視圖將以角度編譯器的原始路徑提供。您無需再將原始html視圖添加到項目中。

您可以將此文件js/tpl.js手動添加到您的index.html文件中或使用ng-html-replace

0

而不將所有的模板到一個html文件,你應該使用$templateCache角提供商和轉換所有的html模板到JavaScript代碼。通過使用templateCache,您可以將所有的模板放到一個文件中,並且可以很好地與路由機制配合使用。試試這個吞掉模塊Gulp ng templates

+0

通過這樣做,它會工作,而不包括查看文件? –

+0

您將獲得帶模板字符串的'.js'文件,您只需將'

  • 11. 哪個文件包含magento中包含的css和js文件?
  • 12. 在JS代碼中包含JS文件
  • 13. Webapp2路由和Python包含
  • 14. 頭文件包含路徑
  • 15. mod_pagespeed不會縮小我的JS文件
  • 16. 結合已經縮小的js文件
  • 17. gzipping一個縮小的.js文件
  • 18. 在js文件中的Phalcon路由
  • 19. 節點Js:單個路由器文件中的多個路由
  • 20. 如何確定jQuery Tools縮小文件中包含的內容?
  • 21. 在戰爭中包含縮小的JavaScript文件
  • 22. Ember.js像路由嵌套的文件夾(包含斜線)
  • 23. 如何重定向到包含文件的路由
  • 24. 定義包含文件中的sinatra請求路由
  • 25. 如何在mod_perl中打包/縮小css和js文件?
  • 26. 不包括縮小一些js文件中com.day.cq.widget.impl.HtmlLibraryManagerImpl
  • 27. 包含JS文件的替代方法
  • 28. 包含PHP文件的JS,Css
  • 29. js中的.NET包含文件
  • 30. PHP路由 - 錯誤包括css/js文件