如果我使用内置帮助器的Ember.js input
{{input value=query class="form-input" placeholder="Search"}}
Run Code Online (Sandbox Code Playgroud)
我想用该字符串的翻译版本替换占位符字符串"Search".
通常,如果我还没有使用input帮助器,我会像这样访问翻译后的字符串:
{{ t "home.search" }}
Run Code Online (Sandbox Code Playgroud) 假设我有一张看起来像这样的地图
一个组织具有一组属性,而这些属性具有一组“ access_tokens”
organization = %{
name: "Org",
properties: [
%{
name: "prop1",
access_tokens: [%{id: "at-1", name: "one-1"}, %{id: "at-2", name: "one-2"}]
},
%{
name: "prop2",
access_tokens: [%{id: "at-3", name: "two-1"}, %{id: "at-4", name: "two-2"}]
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在,我有了此映射,对于一个特定的访问令牌,此映射的ID与2nd属性的访问令牌之一匹配:
access_token = %{id: "at-3", name: "new name"}
Run Code Online (Sandbox Code Playgroud)
迭代organization%{}使用新的访问令牌更新地图的最佳方法是什么?我要做的是找到基于进行匹配的访问令牌,id并将其替换为具有新名称的新令牌。
我有一些绕行的方式来做到这一点,但是在Elixir中这样做是一种干净的方式。
这是我的表单,它工作正常,但现在我想要AJAX它.
<%= form_tag variant_path(variant.id), :method => :put, :class => 'update_inv_form' do %>
<%= text_field_tag :inventory_quantity, variant.inventory_quantity %>
<%= submit_tag 'Update' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
当我添加了:遥控=> true属性的形式通过AJAX成功提交(我可以看到它发生在服务器上,我可以看到的变化,当我刷新页面).我想正确更新视图以显示更改而不刷新页面.这是我的更新操作:(请注意,我在这里不使用ActiveRecord模型.)
def update
variant = ShopifyAPI::Variant.find(params[:id])
variant.inventory_quantity = params[:inventory_quantity]
variant.save
redirect_to root_path
end
Run Code Online (Sandbox Code Playgroud)
更新
感谢您帮助我解决这个问题的答案结果解决方案正如他所说,但是我遇到了一个小问题.我想要更新的视图生活在app/views/home/index.html.erb ,我正在处理这个:Variants #update.(变种控制器,更新动作)
我把我的update.js.html放在我的视图所在的同一目录中:app/views/home我的服务器抛出了500错误:缺少模板.事实证明,我必须创建一个app/views/variants/目录并将update.js.html文件放在那里.问题解决了.
我正在使用google maps api,如下所示:
this.init_map = function(lat, lng){
var mapOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 17,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
title:"I'm Here!"
});
}
Run Code Online (Sandbox Code Playgroud)
这需要lat和lng,并且绘制地图就好了,但是当新的lat&lng变量通过websocket被推入此函数时,页面不会重新加载,但是地图会在新的lat&lng中使用标记重新绘制位置.
我想更新地图上的标记而不重绘地图.