私の 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番目のビューを適切にレンダリングするにはどうすればよいですか?