Ruby on rails 3 在Rails应用程序的Haml视图中使用AngularJS
我有一个带有Haml视图的Rails应用程序。现在我想将AngularJS添加到应用程序的某些部分,但问题是Haml视图是在服务器端呈现的,而AngularJS代码不起作用,因为它是在客户端呈现的 假设我在index.html.haml中有这样的内容: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
!!!
%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();
}