`
xu_wccq
  • 浏览: 130867 次
  • 性别: 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

分享到:
评论

相关推荐

    JsRender.zip(jsrender.js和jsrender.min.js合集)

    JsRender 是一个轻量级但功能强大的JavaScript模板引擎,由Microsoft的前员工 Boris Moore开发。这个库旨在提供一种简洁、高效的方式来动态渲染HTML内容,尤其适用于构建用户界面和数据绑定。JsRender 包含了两个...

    jquery-jsrender.js

    **jQuery-jsrender.js** 是一个基于 jQuery 的高性能 JavaScript 模板引擎,它的设计目标是提供一种灵活、高效的方式来渲染和管理HTML视图。这个插件主要用于处理数据绑定和动态渲染,使得开发者能够在不刷新整个...

    JsRender 的使用demo

    5. **性能优化**: JsRender 通过编译模板为JavaScript函数,提高了渲染效率,减少了DOM操作,从而提升页面性能。 **JsRender的循环迭代** 在提供的"JsRender的应用,提供一个循环迭代的例子"中,我们可以看到如何...

    htmlrender

    为了优化性能和兼容性,htmlrender库可能还实现了对CSS和JavaScript的支持,允许用户在HTML中使用样式和交互,进一步提升生成内容的复杂性和美观度。同时,对于网络资源的处理,比如图片和字体,htmlrender可能提供...

    前端项目-jsrender.zip

    JSRender是一个轻量级但功能强大的JavaScript模板引擎,它在前端项目中被广泛使用,特别是在构建动态Web应用时。这个压缩包“jsrender.zip”包含了JSRender的源码,这使得开发者可以深入了解其工作原理,并在自己的...

    jquery-jsrender.js 下载

    `jQuery JSRender` 是一款高效且功能强大的JavaScript模板引擎,它是jQuery插件家族的一员,专为构建动态数据驱动的Web界面而设计。该库允许开发者通过简洁易读的语法创建复杂的HTML模板,从而在不涉及大量DOM操作的...

    浅谈Vue render函数在ElementUi中的应用

    Vue.js是一个流行的前端JavaScript框架,用于构建用户界面和单页应用程序。Element UI是Vue.js的一个组件库,提供了许多预定义的UI组件,比如按钮、表单、表格等,以便快速构建界面。render函数在Vue.js中扮演着重要...

    基于jQuery的JavaScript模版引擎JsRender使用指南

    2. **功能强大**:JsRender支持条件语句、循环结构、函数调用等多种复杂逻辑,能够满足大多数模板渲染需求。 3. **可扩展性**:通过自定义标签和辅助函数,开发者可以扩展JsRender的功能,适应特定项目的需求。 4....

    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模板库的方法_.docx

    在Node.js项目中,EJS(Embedded JavaScript)是一种流行的模板引擎,它允许开发者将动态数据嵌入到HTML中,从而创建可复用且易于维护的页面。EJS模板库简化了服务器端渲染的过程,尤其适合构建Web应用。下面将详细...

    一个jQuery插件用于数据绑定的HTMLRender模板引擎

    调用`htmlRender`方法将数据绑定到指定的DOM元素,实现了动态渲染。 五、总结 HTMLRender作为一款jQuery插件,为JavaScript数据绑定提供了便利,通过高效的模板引擎机制,简化了前端开发中的动态内容生成。无论是...

    Vue render深入开发讲解

    此外,`render` 函数还可以利用 JavaScript 的全部能力,包括条件语句、循环、函数调用等,提供更高的灵活性。例如,我们可以根据 `level` 的值动态添加额外的类或属性。 总的来说,Vue 的 `render` 函数提供了对...

    基于百度地图JavaScript API封装的React组件库

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

    javascript控件开发之继承关系

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,尤其在前端开发中占据核心地位。控件开发是JavaScript应用中的重要部分,它涉及到UI组件的创建和功能实现。在这个主题中,“javascript控件开发之继承关系”...

    【JavaScript源代码】如何创建自己的第一个React 页面.docx

    【JavaScript源代码】如何创建自己的第一个React页面 React是一个由Facebook开发的JavaScript库,主要用于构建用户界面。不同于传统的JavaScript库,React提供了一种声明式的编程方式,使得开发者能更直观地描述UI...

    javascript写的树

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它在浏览器环境中运行,为用户提供动态交互体验。在本文中,我们将深入探讨如何使用JavaScript来创建一个可展开和可收缩的树形结构。树形结构是一种数据...

    深入理解vue Render函数

    Vue.js 是一个流行的前端JavaScript框架,它提供了许多高级特性来帮助开发者构建复杂的用户界面。其中,`render`函数是Vue.js中的一个核心概念,它允许我们以编程方式生成虚拟DOM,提供更高的灵活性和性能优化的可能...

    【JavaScript源代码】JavaScript 绘制饼图的示例.docx

    JavaScript是一种广泛用于网页和应用程序开发的脚本语言,它提供了丰富的功能来操作页面元素和创建动态效果。在本文中,我们将深入探讨如何使用JavaScript来绘制饼图,这是一种常见的数据可视化方式,尤其适用于显示...

    vue iview组件表格 render函数的使用方法详解

    在上面的代码中,我们定义了一个Render函数,该函数将在每个单元格渲染时被调用。函数的参数h是createElement函数,params是当前单元格的数据和索引。在函数中,我们使用h函数来创建一个div元素,并在其中添加两个...

Global site tag (gtag.js) - Google Analytics