0

私の Web アプリでは、URL の 1 つに移動すると、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/asssets/javascripts/controllers/ にそれぞれ 2 つのコントローラーがあります。どちらも空です。私はhtml5のプッシュ状態も使用しています.like this(push_state.js.coffee)

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

そして、app/assets/templates に、templateUrl に記述したパスを持つビューがあります。

私の問題は、「/」に移動するとangularjsがビューを正常にレンダリングすることですが、2番目のURLに移動すると、スパンタグにプレーンテキストが返され、その中にhamlテンプレートが含まれます。2 番目のテンプレートで when ステートメントを 1 つだけ使用しようとしましたが、同じ結果でした。そして、問題は、2番目のビューを適切にレンダリングするにはどうすればよいですか?

4

1 に答える 1

0

解決策を見つけました。奇妙ですが、テンプレートを編集して元に戻すと、その後すべてのテンプレートが適切にレンダリングされます。編集前と編集後のどちらの場合でも、テンプレートは同じマークアップを持ちます。

于 2013-04-20T05:15:24.173 に答える