2013-04-09 18 views
21

Haml görünümleri ile bir Rails uygulamasına sahibim. Şimdi uygulamanın bazı bölümlerine AngularJS eklemek istiyorum, ancak sorun, istemci tarafında oluşturulduğu için Haml görünümleri sunucu tarafı ve AngularJS kodunun çalışmadığıdır.Bir Rails uygulamasının Haml görünümlerinde AngularJS'yi kullanma

Sadece bu benim index.html.haml ben var diyelim:

!!! 
%html{"ng-app" => "Test"} 
    %head 
    %script{:src => "http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.js"} 
    :javascript 
     function Clock($scope) { 
     $scope.currentTime = new Date(); 
     } 
    %title Welcome to AngularJS 
    %body 
    %h1 Hello, World. 
    %p{"ng-controller" => "Clock"} 
     The current time is {{currentTime | date:'h:mm:ss a'}}. 

Yani şu anda, sadece aslında işlemeden kıvırcık parantez içinde her şeyi baskı oluyor. Çözümler vardır, ancak tam görünümünüzün bir AngularJS şablonuyla değiştirildiği durumlar içindir. AngularJS'yi temelde Rails uygulamasında küçük işlevler için kullanmak istiyorum. Bunun nasıl çözüleceğine dair bir fikrin var mı? Biraz burada kodunu düzenlediniz

cevap

23

John: http://codepen.io/anon/pen/vKiwH

%html{"ng-app"=>true} 
%p{"ng-controller" => "clock"} 
    The current time is {{currentTime | date:'h:mm:ss a'}}. 

ve javascript:

function clock($scope) { 
    $scope.currentTime = new Date().getTime(); 
} 
+0

sayesinde çalışır. Açısal uygulamamı het html etiketinde bir isim vermek için bir hata yaptım, ancak ad alanını oluşturmadı. – John

+8

Hamlede çok küçük bir gelişme, her ikisi de boş dize olmadan ile sonuçlanan% html {"ng-app" => true} veya% html (ng-app = true) yazmaktır. –

+1

'haml 4.0.5' ile (Rails 4 altında) '% html (ng-app)' seçeneğine ulaşabileceğimi buldum. –