0

在我的网络应用程序中,当我转到我的一个 url 时,angularjs 将 haml 模板作为纯文本返回给我。但是,如果我转到我的根 url,它就可以正常工作。我使用 Rails 3.2.13、AngularJS 1.1.4、Haml 来查看视图。

这是我的 app/views/layouts/application.html.haml

!!! 5
%html{'ng-app' => 'myproject'}
  %head
    %title MyProject
    = favicon_link_tag
    = stylesheet_link_tag 'application'
    = javascript_include_tag 'application'
    = csrf_meta_tag

    %body
      .main-background
      .app{'ng-view' => ''}
        = yield

这是我的 app/assets/javascripts/main.js.coffee

@app = angular.module('myproject', [])

这是我的 app/assets/javascripts/routes.js.coffee

app.config ['$routeProvider', '$locationProvider', ($routeProvider, $locationProvider) ->

  $routeProvider
  .when '/',
    templateUrl: '/assets/signin/index.haml',
    controller: 'SignInController'

  .when '/signup/:code',
    templateUrl: '/assets/signup/index.haml',
    controller: 'SignUpController',

]

我在 app/assets/javascripts/controllers/ 分别有 2 个控制器。他们都是空的。我也使用 html5 推送状态,喜欢这个(push_state.js.coffee)

app.config ($locationProvider) ->
  $locationProvider.html5Mode true

而且,我在 app/assets/templates 中有路径,我在 templateUrl 中编写了视图。

我的问题是,当我转到“/”时,angularjs 会很好地渲染我的视图,但是,当我转到第二个 url 时,它会在 span 标签中返回一个纯文本,其中包含 haml 模板。我尝试在第二个模板中仅使用一个 when 语句,结果相同。而且,问题是我应该怎么做才能正确呈现我的第二个视图?

4

1 回答 1

0

我找到了解决方案。这很奇怪,但是当我在我的模板中进行一些编辑,然后再恢复时,所有模板都会正确呈现。在这两种情况下,在编辑之前和之后,模板都具有相同的标记。

于 2013-04-20T05:15:24.173 回答