2013-04-09 6 views
21

私はHamlビューのRailsアプリケーションを持っています。アプリケーションのいくつかの部分にAngularJSを追加したいのですが、Hamlビューがサーバー側でレンダリングされ、AngularJSコードがクライアント側でレンダリングされるため、AngularJSコードが機能しないという問題があります。RailsアプリケーションのHamlビュー内でのAngularJSの使用

のは、私はちょうどこの私のindex.html.hamlであるとしましょう:

!!! 
%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'}}. 

ので、現在、それだけで、実際にそれを処理せずに、中括弧内のすべてのものをプリントアウトしています。解決方法はありますが、完全なビューがAngularJSテンプレートに置き換えられている状況での解決策です。私はAnglesJSを主に私のRailsアプリケーションの小さな機能用に使いたいと思っています。任意のアイデアをどのようにこれを解決するには?私は少しここにコードを編集した

答えて

23

ジョン、:http://codepen.io/anon/pen/vKiwH

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

とJavaScriptは次のとおりです。

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

おかげで、動作します。私は、角度のあるアプリにHTMLタグで名前を付けても間違いを犯しましたが、名前空間は作成しませんでした。 – John

+8

ハムの非常に小さな改善点の1つは、%html {"ng-app" => true}または%html(ng-app = true)と書いて、どちらも空文字列なしでになります。 –

+1

'haml 4.0.5'(Rails 4の下)では'%html(ng-app) 'に行くことができます。 –

関連する問題