Tag: javascript

无法访问主干模型属性

我有一个董事会模型,其category_id代表类别父类,即一个类别有很多董事会。 我有一个以下的ruby模型 应用程序/模型/ board.rb class Board < ActiveRecord::Base attr_accessible :description, :name, :open, :members, :category_id belongs_to :category end 只有我想通过在骨干模板标签标签中使用category_id(可访问)来获取类别对象。 如果我访问类别对象,我在label标签中变为null。 以下是很多代码,如果有更多需要我会发布。 骨干模型: 应用程序/资产/ Java脚本/模型/ board.js Kanban.Models.Board = Backbone.RelationalModel.extend({ urlRoot: “/api/boards”, relations: [{ type: Backbone.HasMany, key: “lists”, relatedModel: “Kanban.Models.List”, collectionType: “Kanban.Collections.Lists”, reverseRelation: { key: “board” } },{ type: Backbone.HasMany, key: “users”, relatedModel: “Kanban.Models.User”, collectionType: “Kanban.Collections.Users” }] }); […]

如何在纯Javascript HTML Web App中隐藏凭据

有没有办法在纯HTML / Javascript应用程序中隐藏凭据,例如用户眼中的密码或身份validation标头令牌? AngularJS App通过在不同域上运行的CORS与rails后端进行通信。 除了设置更严格的CORS或在后端请求检查域中的域之外,我希望发送auth令牌或向令牌添加令牌。 有人知道吗? 亲切的问候, 亚历克斯

在$(document).ready()函数中包装jquery代码有多重要?

我一直用jQuery开发我的前端代码已经有一段时间了,因为我在rails中实现了部分内容。 通常我会使用content_for :javascript来包含一些特定于视图的代码。 我的问题是,我最终得到了很多脚本标签,因为大多数都是jquery代码,我输入了很多$(document).ready(function() {}); 所以我的问题是,是否有必要将所有内容都包装在document.ready中,如果我有太多的document.ready它会影响性能吗?

将HTML返回给AJAX Rails调用

在阅读David Heinemeier Hansson关于服务器生成的javascript的博客文章之后 ,我决定回顾一下我在Rails应用程序中进行AJAX调用的方法。 David建议创建一个.js.erb模板,它只是嵌入了服务器上生成的ruby代码的javascript,而不是在客户端javascript中进行任何DOM操作。 另一种方法当然是简单地在客户端执行所有操作,并且(例如)从服务器返回表示更新对象的JSON对象,并使用javascript来执行所有DOM操作。 我不喜欢第一种方法有两个原因: 1)我在我的应用程序中使用HAML和Coffeescript,并且觉得通过使用vanilla javascript和ERB会不断地使用不同语言的代码膨胀我的代码库(也许可以创建.coffee.haml模板而不是js.erb,我不知道) 2)我真的不喜欢“乱丢”我的视图文件夹的想法,主要是javascript文件,嵌入了一点ruby。 正如大卫在他的博客文章中谈到的那样,第二种方法非常依赖于客户端javascript,这可能导致客户端javascript代码膨胀,并且可能需要客户端模板,这在最坏的情况下可能意味着几乎是模板数量的两倍。 我决定采用的方法(并且想要询问是否完全是愚蠢的方式)如下: 1)设置remote: true标志,使链接和表单利用AJAX发布到服务器。 2)在我的控制器中,处理所有内容为html,如果请求是AJAX请求,则只需渲染而不进行布局: render partial: ”, layout: false if request.xhr? 。 这只是返回partial的HTML,并评估ruby代码。 3)在资产javascript文件中(例如.js.coffee ),听取ajax:success并从响应中追加HTML。 我喜欢这种方法,因为(在我相当简单的应用程序中)这允许我将所有代码保存在HAML / Coffeescript中,并避免使用任何javascript模板。 我意识到如果应用程序的复杂性增加,这个问题可能会有不同的特性,但我仍然觉得这是一个有效的问题:这是一个不好的方法来为Rails应用程序实现基于AJAX的架构(如果是这样的话) ,为什么?即有什么理由为什么从AJAX调用返回HTML而不是JSON是一个坏主意?)或者这是我应该继续使用的东西? 谢谢 :-)

Rails没有从link_to加载Chome中的js

我的rails应用程序在通过link_to帮助程序发送到页面后似乎没有加载一些javascript行为。 这种情况发生在Chrome中,但不是IE(这让我很伤心)。 我已经看到Chrome没有在bootstrap-switch的多个页面中加载行为,以及我在源代码树中的一些自定义函数。 这些将在我从Chrome重新加载页面后起作用,但不会从初始link_to开始。 这是我的application.js: //= require jquery //= require jquery_ujs //= require turbolinks //= require_tree . //= require bootstrap //= require bootstrap-switch //= require jquery-placeholder //= require jquery_nested_form Chrome从link_to帮助程序接收或呈现javascript的方式是否存在一些已知限制? 如果我能提供有助于解决此问题的任何其他信息,请与我们联系。

TypeError:jasmine.getEnv()。currentSpec为null

当我尝试运行我的茉莉花规格时,我明白了 TypeError: jasmine.getEnv().currentSpec is null in http://localhost:8888/__JASMINE_ROOT__/jasmine.js (line 498) 不知道为什么,甚至不知道从哪里开始寻找。 498行是: return jasmine.getEnv().currentSpec.expect(actual); 我几个月来一直在做茉莉花,但不是这个项目。 我以前从未见过这种情况。 那么,我从哪里开始呢? (这是rails 3.x项目中的茉莉花gem)

method:=>:删除不工作并且:忽略确认选项

在返回旧的Rails项目后,我发现没有任何破坏/删除链接工作,并且在确认弹出窗口上单击取消仍然会提交链接。 我的代码示例是: ‘Are you sure?’, :method => :delete %>

显示或隐藏表单元素

我有一个html表单 – 在那个文本字段上 在年龄的价值,我必须显示这个元素像 – Yes No 如果年龄> 18岁,那么已婚领域将被显示形成否则隐藏它。这个年龄> 18岁的条件存储在数据库中。随着年龄的变化,结婚领域切换(显示/隐藏)。 我怎么能用javascript / jquery做。请指教。 有关更多信息,所有这些字段都是动态生成的。所以我想添加onchange =“somefuction(condition);” 当条件满足时,在创建然后查找字段时显示年龄,也在DB中。 要么 我认为一个解决方案是 – 在这种情况下结婚的领域将寻找年龄变化的价值。然后结婚将隐藏/展示自己。但问题是,如何结婚观​​察年龄领域或调用javascriptfunction。 很抱歉没有解释完整的问题。

在Rails中通过JS设计注册#update

我正在尝试使用AJAX通过Devise更新用户模型,并让Devise使用正确的javascript文件进行响应。 我想将表单远程提交到注册#update action,但这不适用于Devise的默认响应,它使用RegistrationsController中的以下内容: respond_with resource, :location => after_update_path_for(resource) 上面尝试重定向到默认路由,而不是呈现update.js.erb文件。 我可以覆盖该操作并使其与以下更改一起使用: respond_to do |format| format.html format.js end 但是,这似乎非常暴力,因为我压倒整个行动。 是否有一种简单的方法让Devise知道用javascript响应而不是默认重定向?

通过ajax将jquery数组发送到rails控制器

我需要通过jquery ajax将一个数组发送到rails控制器 jquery代码 $(document).ready(function(){ var counter = 2; $(“#addButton”).click(function () { var newTextBoxDiv = $(document.createElement(‘div’)) .attr(“id”, ‘TextBoxDiv’ + counter); newTextBoxDiv.after().html(‘ ‘); newTextBoxDiv.appendTo(“#TextBoxesGroup”); counter++; }); $(“#getButton”).click(function () { var fd = new FormData($(“#movie-form”)[0]); var name = document.getElementById(“file”).files[0].name; var arr = []; var msg = ”; for(i=1; i<counter;i++){ msg += "\n Textbox #" + i + " […]