访问angular.js变量的Ruby视图
Ruby view accessing angular.js variable
我已经有角ng-repeat
在Ruby .erb视图。现在,我需要创建一个指向某个IP地址的页面的link_to。首先我试着
<td><%= link_to '{{ roll.system }}' ,'server/'+'{{ roll.system }}' %></a></td>
,
其中{{roll.system}}
是angular.js变量,包含ip. js。总体路径将像localhost/server/127.0.0.1
一样,由于IP地址中的点而无法工作。现在,我正在尝试从IP地址中进行哈希,然后在路由完成后进行解码。
我当前的代码是:
<td><%= link_to '{{ roll.system }}' ,"server/"+Base64.urlsafe_encode64('{{ roll.system }} %></a></td>
问题在这里。Base64按原样编码字符串,创建字面值字符串'{{ roll.system }}'
的散列。我需要它在角变量中查找它所指向的值。
我不明白为什么这是一个问题,因为link_to工作正常。
我认为你有点混淆了两个独立的概念——Rails视图的渲染和Angular的播放。
当你点击你的应用程序,你的第一个建议将呈现Rails视图,并把你的link_to
变成这个原始的HTML:
<td><a href="{{ roll.system }}/server/{{ roll.system }}"></a></td>
一旦rails渲染了视图并将页面返回给浏览器,你的Angular代码就会启动,找到{{ roll.system }}
调用并将其修改为:
<td><a href="127.0.0.1/server/127.0.0.1"></a></td>
第二次尝试的问题是,如果Base64.urlsafe_encode64
在呈现Rails视图时运行,那么Angular此时还没有替换roll.system
。不管roll.system
是什么,最终得到的都是原始HTML:
<td><a href="{{ roll.system }}/server/e3sgcm9sbC5zeXN0ZW0gfX0="></a></td>
相反,你可能想尝试在Angular中对字符串进行base64编码。你可能想要使用类似angular-base64的东西。你可以用它来做以下事情:
<td><a href="{{ roll.system }}/server/{{ roll.encoded_system }}"></a></td>
你在Angular控制器中设置roll.encoded_system
的地方。正如Martin在下面提到的,有一个本机window.btoa()方法可以用于此。我不完全确定是否可以直接在模板中使用,但它可能仍然需要在控制器中调用。
- 使用Ruby数组使用JS在视图中进行迭代和显示
- 如何将.js从视图移动到单独的资产 - Ruby On Rails
- Ajax 与 ruby 视图的问题
- 从 JavaScript 调用 ruby 方法或从 RoR 中的视图中传递参数
- 如何在索引视图中的Ruby on Rails中使用JavaScript切换项目的状态
- 如何在Ruby on Rails视图中访问JavaScript变量
- 将 Ruby 数组传递给 Ruby on Rails 中 Haml 视图中的 JavaScript 代码 (jquery
- 显示视图时JavaScripts不工作-Rails 4 Ruby 2
- Ruby on rails render partial不从主窗体视图执行javascript
- 如何使用AJAX监控ruby控制器传递到视图html的实例变量
- 如何在视图中混合JS和Ruby代码以供以后使用JS
- 通过javascript文件ruby on rails渲染局部视图
- 为什么在视图中解析时,我的嵌入式ruby json字符串用html实体编码
- 在用ruby刷新页面时记住树视图菜单的状态
- 访问angular.js变量的Ruby视图
- 动态更改视图中的Ruby-on-Rails变量
- 在ruby on rails的视图中使用javascript
- 如何在ruby rails视图模板中表示数组
- 使用hidden_form_tag Ruby on Rails从每个视图发送一个参数
- ruby on rails-只有在视图页面中才可以使用Javascript