【问题标题】:AngularJS render html as stringAngularJS 将 html 渲染为字符串
【发布时间】:2013-04-19 17:23:16
【问题描述】:

在我的网络应用程序中,当我转到我的一个 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

这是我的应用程序/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 个控制器。他们都是空的。 我也用html5推送状态,喜欢这个(push_state.js.coffee)

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-10-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      • 2014-08-29
      • 2021-01-30
      • 2019-08-08
      • 1970-01-01
      • 2013-07-07
      相关资源
      最近更新 更多