我有一个具有Haml View 的Rails应用程序。现在,我想将AngularJS添加到应用程序的某些部分,但是问题是Haml View 是在服务器端呈现的,而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'}}.

因此,目前,它只是将大括号内的所有内容打印出来,而无需实际处理。有解决方案,但是它们适用于将完整 View 替换为AngularJS模板的情况。我想将AngularJS主要用于Rails应用程序中的少量功能。任何想法如何解决这个问题?

最佳答案

约翰,

我在这里对您的代码进行了一些编辑: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();
}

关于ruby-on-rails-3 - 在Rails应用程序的Haml View 中使用AngularJS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15895551/

10-16 23:22