我在哪里将我的ui.router模板放在rails应用程序中?

时间:2014-06-06 19:50:15

标签: ruby-on-rails angularjs

我正在使用基本的Rails / Angular应用程序并使用ui.router来控制视图。但是,当我尝试使用templateUrl时,出现localhost/app/assets/templates/partial-home.html错误。我应该把这些部分放在哪里供铁路使用?

app.config(function($stateProvider, $urlRouterProvider) {

$urlRouterProvider.otherwise('/');

$stateProvider
    .state('home', {
        url: '/',
        template: "this is a test of the state provider",
        //templateUrl: 'app/assets/templates/partial-home.html',
        controller: 'testCtrl'
    });

});

1 个答案:

答案 0 :(得分:3)

我正在使用angular-rails-template,它还将HTML模板缓存到Angular的$templateCache中以保存AJAX调用或手动注入模板。

因此,对于assets/javascripts/templates中的模板 (我已经为您的设置添加了说明,但尚未对其进行测试)

  • gem 'angular-rails-templates'bundle
  • 需要清单中的模板js(可能是application.js

    //= require angularjs
    //= require angular-rails-templates
    //= require_tree ./templates
    

    (在您的设置中,包含应为://= require_tree ../templates(未经过测试),您应该更改ignore_prefix settings

  • 注入依赖项:angular.module('myApplication', ['templates']);
  • 在你的ui-router js中使用你的模板:

    $stateProvider.state('home', {
    
      url: '/',
    
      // Template on: app/assets/javascripts/templates/partial-home.html
    
      templateUrl: 'partial-home.html', //should work now :)
    
      controller: 'testCtrl' 
    
      }); 
    
    });
    

就是这样。 让我知道它是怎么回事