Javascript 将_重定向到rails 4中的jquery
在视图中,用户可以使用现有按钮增加/减少购物车中的产品数量 当购物车没有产品时,我想导航到另一个视图。由于我在浏览器上使用jquery,并且已经知道我要去哪里,我认为让用户只在稍后的控制器/模型上捕获这种情况没有多大意义 因此,我的问题是如何从xxx.js.erb中以rails方式导航到另一个视图 更新 谢谢你给我指引了正确的方向 对我起作用的是:Javascript 将_重定向到rails 4中的jquery,javascript,jquery,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,在视图中,用户可以使用现有按钮增加/减少购物车中的产品数量 当购物车没有产品时,我想导航到另一个视图。由于我在浏览器上使用jquery,并且已经知道我要去哪里,我认为让用户只在稍后的控制器/模型上捕获这种情况没有多大意义 因此,我的问题是如何从xxx.js.erb中以rails方式导航到另一个视图 更新 谢谢你给我指引了正确的方向 对我起作用的是: $(location.attr('href','') 您可以通过Javascript重定向尝试解决此示例: # xxx.js.erb functio
$(location.attr('href','') 您可以通过Javascript重定向尝试解决此示例:
# xxx.js.erb
function() {
var new_path = <%= @some_path_from_controller %>;
document.location.href = new_path;
};
#xxx.js.erb
函数(){
var new_path=;
document.location.href=新路径;
};
阅读您可以通过Javascript重定向尝试解决此示例:
# xxx.js.erb
function() {
var new_path = <%= @some_path_from_controller %>;
document.location.href = new_path;
};
#xxx.js.erb
函数(){
var new_path=;
document.location.href=新路径;
};
阅读有关验证的信息 您必须这样做:
#app/assets/javascripts/application.js
$(document).on("click", ".cart_button", function(){
if( $(".cart_total").val() == "0" ){
document.location.href = "/your/new/path";
}else{
//etc
}
});
Ajax 更好的处理方法是使用
ajax
具体来说,我想您将向您的cart\u控制器发送请求。这意味着,如果您想要管理与购物车数量相关的响应,那么如果您使用内置的Railsjs
后端处理,您将处于更有利的位置:
#app/controllers/cart_controller.rb
class CartController < ApplicationController
def update
@cart = ....
respond_to do |format|
format.js
format.html
end
end
end
#app/controllers/cart_controller.rb
类CartController<应用程序控制器
def更新
@购物车=。。。。
回应待办事项|格式|
format.js
format.html
结束
结束
结束
这将使您能够加载以下内容:
#app/views/cart/update.js.erb
<% if @cart.total_quantity.zero? %>
var new_path = "<%=j controller_path %">;
document.location.href = new_path;
<% else %>
// do something here
<% end %>
#app/views/cart/update.js.erb
var new_path=“验证
您必须这样做:
#app/assets/javascripts/application.js
$(document).on("click", ".cart_button", function(){
if( $(".cart_total").val() == "0" ){
document.location.href = "/your/new/path";
}else{
//etc
}
});
Ajax
更好的处理方法是使用ajax
具体来说,我认为您将向您的cart\u控制器发送请求。这意味着如果您想管理与购物车数量相关的响应,那么如果您使用内置Railsjs
后端处理,您将处于更有利的位置:
#app/controllers/cart_controller.rb
class CartController < ApplicationController
def update
@cart = ....
respond_to do |format|
format.js
format.html
end
end
end
#app/controllers/cart_controller.rb
类CartController<应用程序控制器
def更新
@购物车=。。。。
回应待办事项|格式|
format.js
format.html
结束
结束
结束
这将使您能够加载以下内容:
#app/views/cart/update.js.erb
<% if @cart.total_quantity.zero? %>
var new_path = "<%=j controller_path %">;
document.location.href = new_path;
<% else %>
// do something here
<% end %>
#app/views/cart/update.js.erb
var new_path=“感谢您为我指引了正确的方向。
我最后用了这个:
$(location).attr('href','<%=j store_index_url %>');
$(location.attr('href','');
谢谢你给我指引了正确的方向。
我最后用了这个:
$(location).attr('href','<%=j store_index_url %>');
$(location.attr('href','');
谢谢。这就是我正在做的。我只想在更新js和erb中进行重定向。所以它必须在Jquery中完成。谢谢。这就是我正在做的。我只想在更新js和erb中进行重定向。所以它必须在Jquery中完成。谢谢你引导我走向正确的方向+1我使用了$(location.attr('href','');不幸的是,我不能接受这个答案,因为它不适合我。导航没有发生。我的回答中更新了对我有用的东西谢谢你引导我走上了正确的方向+1我使用了$(location.attr('href','');不幸的是,我不能接受这个答案,因为它不适合我。导航没有发生。我的答案中更新了对我有用的内容