手动刷新时无法识别AngularJS路由

时间:2014-01-28 17:46:19

标签: ruby-on-rails angularjs

您好我遵循了教程:http://omarriott.com/aux/angularjs-html5-routing-rails/

这是我的manual.js.coffee.erb

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
#= require_tree ./templates

@Bento = angular.module('bento', ['ngRoute', 'ngResource', 'ngSanitize', 'ui.bootstrap', 'infinite-scroll'])

# Pre-cache templates
Bento.run ($window, $templateCache) ->
  templates = $window.JST

  for fileName of templates
    fileContent = templates[fileName]
    $templateCache.put(fileName, fileContent)
    # Note that we're passing the function fileContent,
    # and not the object returned by its invocation.

#= require_tree ./controllers
#= require_tree ./services
#= require_tree ./directives

我的routes.js.coffee.erb

@Bento.config ["$routeProvider", ($routeProvider) ->
  $routeProvider.when("/",
    controller: "ActivitiesController"
    templateUrl: "<%= asset_path('templates/user/activities.html.haml') %>"
    redirectTo: (current, path, search) ->
      if search.goto
        "/" + search.goto
      else
        "/"
  ).when("/projects/activities",
      controller: "ProjectAllActivitiesController"
      templateUrl: "<%= asset_path('templates/projects/activities.html') %>"
      redirectTo: "/example"
  ).when("/projects/:id",
      controller: "ProjectCtrl"
      templateUrl: "<%= asset_path('templates/projects/list.html') %>"
      redirectTo: (current, path, search) ->
        if search.goto
          "/projects/:id" + search.goto
        else
          "/projects/:id"
  ).otherwise redirectTo: "/"
]

我添加到config / routes.rb文件中的行

match "api" => proc { [404, {}, ['Invalid API endpoint']] }, via: [:post]
match "api/*path" => proc { [404, {}, ['Invalid API endpoint']] }, via: [:post]

match "/*path" => redirect("/?goto=%{path}"), via: [:post]

由于我使用的是rails 4,我需要添加via

每当我刷新根路径localhost:3000/时,

符号就会添加,但它在localhost:3000/projects/1这样的嵌套网址中无法正常工作,它仍在读取RAILS的路由。

PS:每当我刷新localhost:3000/projects/activities时,它仍在读取我的铁路路线,而不是去localhost:3000/example

0 个答案:

没有答案
相关问题