我有一个连接到angularJS客户端的Rails应用程序。 (连接通过someview.html.erb文件(称为嵌入式红宝石)进行。 我在里面有一个Rails控制器:
@books = Book.find(1)
我想在我的angularJS控制器中访问此@books变量:例如:
@scope.list_of_books = @books
我有什么选择?
注意:这篇文章:Accessing Rails instance variable in AngularJS 没有帮助我。 (我也无法意识到与$ http whatsover的连接是什么,或者$ scope。$ apply
是什么。答案 0 :(得分:0)
以上文章解决了我的问题: https://spin.atomicobject.com/2013/11/22/pass-rails-data-angularjs/ 提供了一些有趣的,但很棘手的解决方案来访问angularJS应用程序内的rails实例变量。 一种解决方案(hacky):
<div ng-controller="itemsControllerNgInit"
ng-init="init('<%= @item.name %>', <%= @item.cost %>, <%= @item.id %>)">
<h2> {{item.name}} ({{item.id}}) costs {{item.cost | currency}} {{test}} </h2>
</div>
和控制器:
function itemsControllerHiddenDiv ($scope) {
var div = document.getElementById('div-item-data');
$scope.item = {name: div.getAttribute("data-item-name"),
cost: div.getAttribute("data-item-cost"),
id: div.getAttribute("data-item-id")
};
}