在我的网络应用程序中,当我转到我的一个 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 语句,结果相同。而且,问题是我应该怎么做才能正确呈现我的第二个视图?