2013-04-19 146 views
4

作爲Rails的人,我愛我一些Haml或Slim。但是,在使用AngularJS時,我還沒有太多運氣。是否有一個模板引擎是AngularJS友好的,並且比直接的HTML更簡潔?AngularJS和Rails模板引擎

+0

你遇到過什麼問題?我還沒有廣泛使用AngularJS的模板引擎,但我[知道這是可能的](http://briantford.com/blog/angular-express.html)。 –

回答

1

我使用超薄我angularjs模板。我花了很長時間才弄清楚如何去做,但一旦你知道如何做,它很容易做到。

添加苗條的寶石和捆綁安裝。

確保你有一個模板目錄。我的是:

assets/javascripts/templates 

然後在config/initializers中創建一個文件。我的只是slim_engine.rb。名字並不重要。

在該文件中

然後加入這一行:

Rails.application.assets.register_engine('.slim', Slim::Template) 

,路線提供我有一個使用這些模板之一的一個片段:

angular.module('customer_app', ['customer_service']) 
    .config(['$routeProvider', function($provider) { 
    $provider.when('/:customer_id/edit/', { templateUrl: '/assets/customers/edit.html.slim', controller: 'CustomersController' }); 
    }]) 
    .config(["$httpProvider", function(provider) { 
    provider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content'); 
    }]); 

完整模板路徑是:資產/模板/客戶/ edit.html.slim

希望這會有所幫助!

+0

這消除了資產管道的最好部分fwiw。您需要執行asset_path(「edit.html」)(我相信)才能使生產指紋識別正常工作。 – RandallB