Javascript 使用Ruby on Rails wiselinks作为商店定位器
我有一个已分页的门店工作列表,当单击其中一个时,它会显示门店详细信息 在列表的侧面(Javascript 使用Ruby on Rails wiselinks作为商店定位器,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我有一个已分页的门店工作列表,当单击其中一个时,它会显示门店详细信息 在列表的侧面(#index)和详细信息(#show)有一个显示位置的地图 我现在尝试应用wiselinks gem,以便通过ajax完成从列表到详细信息的转换,从而无需重新加载地图 我的列表和详细信息页面使用主应用程序的子级布局 子级布局如下所示: <div class="stores-container"> # partial loaded here </div> <div class="
#index
)和详细信息(#show
)有一个显示位置的地图
我现在尝试应用wiselinks gem,以便通过ajax完成从列表到详细信息的转换,从而无需重新加载地图
我的列表和详细信息页面使用主应用程序的子级布局
子级布局如下所示:
<div class="stores-container">
# partial loaded here
</div>
<div class="map-container"></div>
我的列表和详细信息链接使用data push='partial'数据目标='。存储容器'
我的控制器如下所示:
def index
...
if request.wiselinks_partial?
render :partial => 'my_partial'
else
render :layout => 'sub_level_layout'
end
end
def show
...
if request.wiselinks_partial?
render :partial => 'my_partial'
else
render :layout => 'sub_level_layout'
end
end
这对于在索引页面上点击结果页面非常有效,还允许我点击其中一个结果的链接以转到显示页面
但是,如果加载索引页面,单击其中一个结果以显示“显示”页面,然后单击“上一步”按钮,则会失败。它似乎不知道使用什么来呈现索引页,它只是显示一个空白页
我需要它只是刷新部分的内容,以便再次显示索引
如果我加载索引页面,请单击其他页面(也可以使用wiselinks完成分页),然后单击其中一个结果以显示显示页面,然后单击“上一步”按钮,它工作正常
它似乎不喜欢单击“上一步”按钮转到起始页面(页面最初以html形式加载,而不是通过WiseLink),只使用部分而不是全屏刷新内容
当页面无法加载失败请求的标题时,包含X-request-With:XMLHttpRequest
和X-Wiselinks:template
我是否使用wiselinks正确地执行此操作
有没有其他方法可以这样做,当我只需要重新加载部分内容时,单击返回起始页时,它不需要从头开始加载模板
如果可能的话,我想和wiselinks呆在一起
谢谢
可能的解决方案
我想我已经通过改变以下方式让它工作了:
$(function() {
window.wiselinks = new Wiselinks();
});
到
对于我的控制器:
def index
...
if request.wiselinks_partial?
render :partial => 'my_partial'
else
render :layout => 'sub_level_layout'
end
end
def wiselinks_layout
'my_partial_as_a_layout'
end
def show
...
if request.wiselinks_partial?
render :partial => 'my_partial'
else
render :layout => 'sub_level_layout'
end
end
新布局-my\u partial\u as\u a\u layout.html.erb
:
<%= render 'stores/my_partial' %>
我不喜欢它要求我在layouts文件夹中将我的partial复制为布局的方式
我也不喜欢这样一个事实,即存储定位器的这组页面需要设置一个特定的div作为wiselinks要使用的容器,即使每个链接都有一个数据目标属性设置为'
有人能解释为什么这可能是正确的,或者如果它仍然不正确,它有什么问题吗
谢谢我也面临同样的问题,对此有任何解决方案:)!尝试删除控制器中的wiselinks\u partial?
的else
,并且根本不使用wiselinks\u布局
,我认为这似乎是可行的,尽管对wiselinks使用html4:false
,如果这有区别的话。
def index
...
if request.wiselinks_partial?
render :partial => 'my_partial'
else
render :layout => 'sub_level_layout'
end
end
def wiselinks_layout
'my_partial_as_a_layout'
end
def show
...
if request.wiselinks_partial?
render :partial => 'my_partial'
else
render :layout => 'sub_level_layout'
end
end
<%= render 'stores/my_partial' %>