Javascript 使用Rails 4.2的AngularJS-如何使$routeProvider.when()正常工作?

Javascript 使用Rails 4.2的AngularJS-如何使$routeProvider.when()正常工作?,javascript,ruby-on-rails,ruby,angularjs,Javascript,Ruby On Rails,Ruby,Angularjs,我正在使用Rails 4.2和gems。当我第一次转到主页(index.html)并尝试单击“#/kiteboards/{{kiteboard.id}}}/users”时,浏览器栏中会出现哈希URL,例如“”,但是没有加载users.html.haml模板(由angular rails模板提供) 这应该是一个简单的路由问题……是AngularJS路由代码错了吗?还是别的什么?Chrome开发工具控制台中没有出现JS错误消息,因此看起来AngularJS连接正确,但可能在路由中的某个地方缺少“/”

我正在使用Rails 4.2和gems。当我第一次转到主页(index.html)并尝试单击“#/kiteboards/{{kiteboard.id}}}/users”时,浏览器栏中会出现哈希URL,例如“”,但是没有加载users.html.haml模板(由angular rails模板提供)

这应该是一个简单的路由问题……是AngularJS路由代码错了吗?还是别的什么?Chrome开发工具控制台中没有出现JS错误消息,因此看起来AngularJS连接正确,但可能在路由中的某个地方缺少“/”

AngularJS代码片段

  var kiteApp = angular.module('kiteApp', ['ngResource', 'ngRoute', 'templates']);
  kiteApp.controller('kiteCtr', ['$scope', 'KiteboardApi', kiteCtr]);
  kiteApp.factory('KiteboardApi', ['$resource', KiteboardApi]);
  kiteApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/kiteboards/:kiteboard_id/users', {
      templateUrl: 'users.html',
      resolve: {
        usersData: function(KiteboardAPI) {
          return KiteboardAPI.fetchUsers({ kiteboard_id: $route.current.params.kiteboard_id }).$promise.then(function(data) {
            return data;
          });
        }
      },
      controller: 'kiteCtr'
    })
  }]);
application.js

//= require jquery
//= require jquery_ujs
//= require angular
//= require angular-resource
//= require angular-route
//= require angular-rails-templates
//= require_tree ../templates

//= require_tree .
%div{"ng-app"=>"kiteApp", "ng-controller"=>"kiteCtr"}
  %table
    %thead
      %tr
        %th Index #
        %th Name 
    %tbody
      %tr{"ng-repeat" => "kiteboard in kiteboards track by $index"}
        %td {{$index}}
        %td
          %a{href: '#/kiteboards/{{kiteboard.id}}/users'} {{kiteboard.name}}
应用程序内/assets/templates/users.html.haml:

%div#section{"ng-app"=>"kiteApp", "ng-controller"=>"kiteCtr"}
  %table
    %thead
      %tr
        %th Name
    %tbody
      %tr{"ng-repeat" => "user in usersData track by $index"}
        %td 
主页,index.html,由Rails加载

//= require jquery
//= require jquery_ujs
//= require angular
//= require angular-resource
//= require angular-route
//= require angular-rails-templates
//= require_tree ../templates

//= require_tree .
%div{"ng-app"=>"kiteApp", "ng-controller"=>"kiteCtr"}
  %table
    %thead
      %tr
        %th Index #
        %th Name 
    %tbody
      %tr{"ng-repeat" => "kiteboard in kiteboards track by $index"}
        %td {{$index}}
        %td
          %a{href: '#/kiteboards/{{kiteboard.id}}/users'} {{kiteboard.name}}

在将该值传递给
$resource
:call之前,应在resolve
usersData
函数中插入
$route
。。它应该是
usersData:function(KiteboardAPI,$route)
而不是
usersData:function(KiteboardAPI)
,事实证明,这个问题主要与链轮3与角轨模板不兼容以及不使用ng view指令有关。