AngularJS将html呈现为字符串

时间:2013-04-19 17:23:17

标签: angularjs ruby-on-rails-3.2 haml

在我的网络应用程序中,当我转到我的某个网址时,angularjs会将haml模板作为纯文本返回给我。 但是,如果我去我的根网址它工作正常。我使用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 / asssets / javascripts / controllers /中有2个控制器。他们都是emty。 我也使用html5推送状态,喜欢这个(push_state.js.coffee)

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

而且,我在appUrl中的app / assets / templates,whith路径中有视图。

我的问题是,当我去'/'时,angularjs渲染我的视图很好,但是,当我转到第二个网址时,它会返回一个span标签中的纯文本,其中包含haml模板。我试图只使用一个if语句与第二个模板,它是相同的结果。 而且,问题是我应该怎样做才能正确地呈现我的第二个观点?

1 个答案:

答案 0 :(得分:0)

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