`
xu_wccq
  • 浏览: 128357 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

render 页面javascript调用

    博客分类:
  • ruby
阅读更多
情景:
在使用 rail 中的 自动完成功能 auto_complete_field时,假若返回的页面中有 javascript脚本,那它将不会被返回。 必需把它用 javascript_function 方法进行改写。
a.rhtml 中 render _b.rhtml 页面。 在_b.rhtml中如果包含了 javascript脚本,则不能被render到a.rhtml中。


我在_b.rhtml中用了auto_complete_field来对用户输入进去提示。因为auto_complete_result 返回的已经是javascript脚本了,就不能把javascript发送给客户端。


解决方法:
在application_helper.rb中覆盖此方法:不返回javascript脚本,把结果放到_b.rhtml中 用javascript_function方法把脚本输出到客户端。

  def auto_complete_field_no_javascript_tag(field_id, options = {})
    function =  "var #{field_id}_auto_completer = new Ajax.Autocompleter("
    function << "'#{field_id}', "
    function << "'" + (options[:update] || "#{field_id}_auto_complete") + "', "
    function << "'#{url_for(options[:url])}'"

    js_options = {}
    js_options[:tokens] = array_or_string_for_javascript(options[:tokens]) if options[:tokens]
    js_options[:callback]   = "function(element, value) { return #{options[:with]} }" if options[:with]
    js_options[:indicator]  = "'#{options[:indicator]}'" if options[:indicator]
    js_options[:select]     = "'#{options[:select]}'" if options[:select]
    js_options[:paramName]  = "'#{options[:param_name]}'" if options[:param_name]
    js_options[:frequency]  = "#{options[:frequency]}" if options[:frequency]

    { :after_update_element => :afterUpdateElement, 
      :on_show => :onShow, :on_hide => :onHide, :min_chars => :minChars }.each do |k,v|
      js_options[v] = options[k] if options[k]
  end

    function << (', ' + options_for_javascript(js_options) + ')')

    function
  end

分享到:
评论

相关推荐

    Unity调用网页页面Embedded Browser插件

    - Render sites to 2D or 3D objects - Chromium backend; best-in-class support for: HTML, CSS, and JavaScript - Call JavaScript1 from Unity - Call Unity from JavaScript1 - Transparent or opaque ...

    Node.js项目中调用JavaScript的EJS模板库的方法

    ejs的render函数有两个参数 第一个是字符串,第二个是可选的对象,和其他javascript模版一样需要渲染的数据也是包含在option对象中的 ejs.render(str,option); // 渲染字符串 str 一般是通过nodejs文件系统的...

    javascript实现组织图

    2. 简化了javascript的调用 定义了一个名为render的function,在html里面只需要调用这个function. render(url). url为点击这个人,要连接到的url。 url里面必须有一个参数{id}。 id将会替代为各个人的ID。 例如: ...

    game-shell, 准备使用 JavaScript shell 进行游戏或者其他交互式演示.zip

    game-shell, 准备使用 JavaScript shell 进行游戏或者其他交互式演示 游戏... 这将为你提供以下功能:在页面加载时触发的init 事件每个帧或者根据需要调用的render 事件独立间隔调用的帧速率独立 tick 事件每当游戏改变

    HTML+CSS+JS实战案例,新年快乐烟火特效

    这段代码是一个JavaScript对象S的初始化函数init。该函数的作用是初始化页面,并根据URL参数执行相应的操作。 首先,函数获取当前页面的URL,并查找...这个回调函数中,调用S.Shape.render函数来渲染页面上的形状。

    react-render-ui:使用react钩子动态加载,过滤和排序数据

    如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。yarn test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。yarn build 构建生产到应用程序build文件夹。 它在生产...

    templatize:JavaScript模板库

    最基本的用例将只调用Templatize.render()函数。 模板化。 渲染(模板,绑定[,选项]) 姓名 类型 描述 template 细绳 模板。 bindings 目的 数据绑定的对象文字。 options 目的 查看。 返回: (String)...

    brage:单页应用程序的Javascript组件库概念

    不使用虚拟DOM,必须在数据更新时通过调用render来完成更新。 包括完整的webpack设置和测试。 享受! 安装 npm i brage 您也可以只将dist/brage.js中的javascript文件dist/brage.js在HTML文件中。 用法 从您的...

    learn-renderProps

    结论实验道具在这些组件提供要由发送数据的道具填充的道具... 例如,当我们要调用组件2并需要组件1的数据时,我们可以通过调用组件1来调用组件1的道具,然后填充已制成的道具。 因为创建的props是一个函数,所以我们可

    XML在.net平台下的自定义控件的应用

    系统会调用class的render方法,制作控件的时候,应该重载(override)这个render方法,使得在控件被加载的那 一刻,控件可以自己“绘制”自己,一般来说,在render方法里面要将关于控件界面绘制的那些JavaScript文件...

    qrcode.zip

    3、调用qrcode插件。支持canvas和table两种方式进行图片渲染 canvas方式: $('#code').qrcode("http://www.baidu.com"); //任意字符串 table方式: $("#code").qrcode({ render: "table", //table方式 width: ...

    react-purerender:以装饰器兼容方式的 purerender mixin

    import PureRender from 'react-purerender' ;@ PureRenderclass Foo extends React . Component { // stuff} 健全性检查: 检查您没有在虚假值(未定义)上调用它检查你调用它的东西没有 shouldComponentUpdate 后...

    react-bmap:基于百度地图JavaScript API封装的React组件库

    来调用对应的百度地图JavaScript Api的方法,比如在componentDidMount和componentDidUpdate的时候在地图上添加覆盖物,componentWillUnmount的时候移除覆盖物,React对应的render渲染函数模块返回的是null。...

    prando:用于JavaScript和TypeScript的确定性伪随机数生成器

    例如,当为具有随机样式的网页创建React组件时,人们不希望在render()调用期间使用Math.random() ,因为这将导致元素的样式在每次组件更新时发生变化。 相反,通过重新使用Prando随机数生成器,可以在重新渲染组件...

    JSX在render函数中的应用详解

    JSX 可能会使人联想到模版语言,但它具有 JavaScript 的全部功能。 Babel 会把 JSX 转译成一个名为 React.createElement() 函数调用。 以下两种示例代码完全等效: const element = ( Hello, world! ); ...

    react-dd:对于那些不使用JSX并依赖React.DOM的人。___只是函数调用

    ___只是函数调用 如何使用它 var dd = require ( "react-dd" ) ; var Hello = dd . createClass ( { render : function ( ) { return dd . h1 ( null , "Hello " + this . props . name ) ; } } ) ; React . ...

    js-game-init:我的新JavaScript游戏的基本框架

    这些游戏以固定的设定帧速率(默认为60fps)运行,其中逻辑和渲染功能每帧调用一次。 添加游戏功能的基础知识: 制作一个新的js文件 新文件应包含具有init(),logic()和render()函数的类/对象 在index.html...

    react-bootcamp:React训练营

    每个组件都是一个react组件一个ReactDOM.render()调用MPA 多个HTML页面,内容在服务器上呈现React将用于创建“小部件” 多个ReactDOM.render调用,因为我们会有多个“窗口小部件”建立工作流程依赖经理npm 邦德勒...

    time-accumulator

    这会导致render函数每 5 毫秒调用一次,无论requestAnimationFrame以何种速率调用accum : var timeAccumulator = require ( "time-accumulator" ) ; var accum = timeAccumulator ( 5.0 ) ; var render = ...

Global site tag (gtag.js) - Google Analytics