0
我試圖用angularjs和bootsrap編寫應用程序。我在服務器上使用RoR,SLIM和CoffeeScript用於模板和資產。這是我的索引文件:AngularJS,動態加載的視圖看不到相應的控制器
doctype
html lang="en" ng-app='my_server'
head
meta charset="utf-8"
meta content="IE=Edge,chrome=1" http-equiv="X-UA-Compatible"
title= content_for?(:title) ? yield(:title) : "MyServer"
= csrf_meta_tags
= stylesheet_link_tag "application", :media => "all"
= favicon_link_tag
= javascript_include_tag "application"
body
.navbar.navbar-fluid-top
.navbar-inner
.container-fluid
a.btn.btn-navbar data-target=".nav-collapse" data-toggle="collapse"
span.icon-bar
span.icon-bar
span.icon-bar
a.brand href="#" My server
.container-fluid.nav-collapse
ul.nav
li= link_to "Link1", "/path1"
li= link_to "Link2", "/path2"
li= link_to "Link3", "/path3"
/! /.nav-collapse
.container-fluid
.container-fluid(ng-view)
footer
p © Company 2013
/! /container
app.js.coffee:
@app = angular.module('my_server', [])
.config(['$routeProvider', ($routeProvider) -> @RouteProvider($routeProvider)])
.run(['$rootScope', '$location', ($rootScope, $location) ->
])
routes.js.coffee:
@RouteProvider = ($routeProvider) ->
$routeProvider.when('/sign_in', {templateUrl: 'assets/sign_in.html', controller: SignInController})
sign_in_controller.js.coffee:
@SignInController = ($scope, $routeParams) ->
alert("Controller loaded")
Auth = ->
alert("Auth")
和sign_in.html.slim,動態加載(i有修改的軌道資產管道配置,這樣我就可以使用SLIM靜態頁面):
.body
form
fieldset
legeng Sign in
label
input type='email' placeholder='email' ng-model='email'
label
input type='password' placeholder='password' ng-model='password'
button.btn ng-click='Auth()' Auth
當我試圖去/#/ sign_in我看到我的身份驗證的形式,我看到「控制器裝」信息提示,所以我認爲SignInController已加載。但是當我按下我的表單上的身份驗證按鈕時,我沒有看到「Auth」消息的警報,即控制器方法Auth未被調用。當我試圖寫這樣的事情在SignInController
$scope.email = '[email protected]
我沒有看到我的形式這封電子郵件。我在瀏覽器控制檯中沒有錯誤或警告。
爲什麼我的部分表單看不到我的控制器?我究竟做錯了什麼?
更新:
控制器的方法必須被定義爲$範圍屬性