Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 在Rails应用程序的Haml视图中使用AngularJS_Ruby On Rails 3_Angularjs_Haml - Fatal编程技术网

Ruby on rails 3 在Rails应用程序的Haml视图中使用AngularJS

Ruby on rails 3 在Rails应用程序的Haml视图中使用AngularJS,ruby-on-rails-3,angularjs,haml,Ruby On Rails 3,Angularjs,Haml,我有一个带有Haml视图的Rails应用程序。现在我想将AngularJS添加到应用程序的某些部分,但问题是Haml视图是在服务器端呈现的,而AngularJS代码不起作用,因为它是在客户端呈现的 假设我在index.html.haml中有这样的内容: !!! %html{"ng-app" => "Test"} %head %script{:src => "http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angul

我有一个带有Haml视图的Rails应用程序。现在我想将AngularJS添加到应用程序的某些部分,但问题是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模板替换的情况。我想在我的Rails应用程序中使用AngularJS主要用于一些小功能。有什么办法解决这个问题吗

约翰

我在这里编辑了您的代码:

javascript是:

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

谢谢,行得通。我犯了一个错误,在html标记中给我的angular应用程序命名,但没有创建名称空间。对haml的一个很小的改进是编写%html{“ng app”=>true}或%html(ng app=true),这两者都将导致没有空字符串。使用
haml 4.0.5
(在Rails 4下)我发现我可以简单地转到
%html(ng app)
。旁注:另一种在HAML中编写角度指令的方法->
%p{ng:{controller:“clock”,重复:“loop in loops”}
等。。。
function clock($scope) {
  $scope.currentTime = new Date().getTime();
}