RoR web应用程序中的javascript代码放在哪里?
我是网络开发新手,所以我认为这个问题对你们很多人来说很简单,但对我来说很难 在我的页面上,我有1000多行js,我可以将其分为3种类型: 1.其中我定义了全局变量,并向后端询问初始数据:RoR web应用程序中的javascript代码放在哪里?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我是网络开发新手,所以我认为这个问题对你们很多人来说很简单,但对我来说很难 在我的页面上,我有1000多行js,我可以将其分为3种类型: 1.其中我定义了全局变量,并向后端询问初始数据: var charts_data = #{@object.charts_data}; var max_height = #{@object.max}; var min_height = #{@object.min}; var param_from = #{params[:f].nil? ? -1 : para
var charts_data = #{@object.charts_data};
var max_height = #{@object.max};
var min_height = #{@object.min};
var param_from = #{params[:f].nil? ? -1 : params[:f]};
var param_to = #{params[:t].nil? ? -1 : params[:t]};
2.其中我定义了一些与当前页面无关的支持函数(helpers),即数组:
function clone(obj) {
if (null == obj || "object" != typeof obj) return obj;
var copy = obj.constructor();
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
}
return copy;
}
3.与当前页面相关的功能,使用基于页面元素的选择器,即:
$('#range-from, #range-to').keypress(function (e) {
//if the letter is not digit then display error and don't type anything
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});
$('#范围从,#范围到')。按键(功能(e){
//如果字母不是数字,则显示错误,不键入任何内容
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});
你们能帮我从js中清除我的视图,并将其正确分割并放入另一个文件吗?我自己不是RoR专家,但可能会这样开始 这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块 您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)
…也许有更好的解决方案,但像这样,你应该得到很好的解决 我自己也不是RoR专家,但我可能会这样开始 这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块 您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)
…也许有更好的解决方案,但像这样,你应该得到很好的解决 我自己也不是RoR专家,但我可能会这样开始 这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块 您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)
…也许有更好的解决方案,但像这样,你应该得到很好的解决 我自己也不是RoR专家,但我可能会这样开始 这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块 您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)
…也许有更好的解决方案,但像这样,你应该得到很好的解决 我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它
查看此页面:我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它
查看此页面:我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它
查看此页面:我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它
查看此页面:在Rails中管理javascript是一个偏好问题。假设一个项目只依赖于
jQuery
,那么我会将代码分为三个级别
app/assets/javascripts
(至少从版本3.2开始)。这棵树可能看起来像:
.
| application.js
| common.js
| users
| \ new.js
| \ index.js
| ...
application.js
仅定义与应用程序相关的库的要求,例如jQuery
common.js
包含应用程序的通用代码,users/new.js
仅包含特定于该特定视图的代码。要使用这种代码存储方法,需要告诉Rails必须为特定视图加载特定文件。可通过以下方式完成:
# application layout:
<body>
...
...
<%= yield :additional_javasript %>
</body>
# users/new.html.erb:
<% content_for :additional_javasript do %>
...
<% end %>
#应用程序布局:
...
...
#users/new.html.erb:
...
在Rails中管理javascript是一种偏好。假设一个项目只依赖于jQuery
,那么我会将代码分为三个级别
app/assets/javascripts
(至少从版本3.2开始)。这棵树可能看起来像:
.
| application.js
| common.js
| users
| \ new.js
| \ index.js
| ...
application.js
仅定义与应用程序相关的库的要求,例如jQuery
common.js
包含应用程序的通用代码,users/new.js
仅包含特定于该特定视图的代码。要使用这种代码存储方法,需要告诉Rails必须为特定视图加载特定文件。可通过以下方式完成:
# application layout:
<body>
...
...
<%= yield :additional_javasript %>
</body>
# users/new.html.erb:
<% content_for :additional_javasript do %>
...
<% end %>
#应用程序布局:
...
...
#users/new.html.erb:
...
在Rails中管理javascript是一种偏好。假设一个项目只依赖于jQuery
,那么我会将代码分为三个级别