2013-04-19 255 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