2013-08-17 2 views
0

anglejs 및 bootsrap을 사용하여 앱을 작성하려고합니다. 나는 템플리트와 자산을 위해 서버, SLIM 및 CoffeeScript에서 RoR을 사용합니다.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를 사용할 수 있습니다 : 난 내 인증 양식을 참조 sign_in

내가 계속 노력
.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 

가/# /, 내가 메시지를 "컨트롤러가로드"를 경고 참조 그래서 SignInController로드 된 것 같아요. 하지만 내 양식에서 Auth 버튼을 누르면 "Auth"메시지와 함께 경고가 표시되지 않습니다. 즉, 컨트롤러 메소드 Auth가 호출되지 않습니다. 내가 SignInController에서 이와 같은 것을 쓰려고 할 때

$scope.email = '[email protected] 

나는이 양식을 내 양식에 표시하지 않습니다. 브라우저 콘솔에 오류나 경고가 없습니다.

왜 내 부분 양식에 컨트롤러가 보이지 않습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

업데이트 :

컨트롤러 방법은 $ 범위 특성

답변

0

정식 방법은 범위 등록 할 필요가 정의되어야한다.

$scope.Auth = -> 
    alert("Auth") 

Auth = -> 
    alert("Auth") 

을 변경해보십시오

관련 문제