【问题标题】:JQuery not working when referred from external file in Grails从 Grails 中的外部文件引用时,JQuery 不起作用
【发布时间】:2014-09-29 03:35:42
【问题描述】:

我必须根据我在另一个下拉菜单中选择的值动态加载一组值。

在控制器中我有以下代码,

def ajaxGetCities(params){

   println params.id
   def userCustPlantDetails = utilitySummaryService.fetchUserCustPlantDetails('PHILL00')

   def data = []
   userCustPlantDetails?.get('UserPlantList').collect{
        data << it.pwr_plt_nme
   }

   [data: data]         
}

在普惠制中我有:

 <g:select class="btn btn-default" name="viewValue" from="${view}" onchange="${remoteFunction(
        action:'ajaxGetCities', 
        params:'\'id=\' + escape(this.value)', 
        onSuccess :'updateCity(data)')}"></g:select>

当我更改下拉列表的值时,我看到触发器和控制器动作被调用。发布 Javascript(JQuery) updateCity 运行良好。我将脚本放在同一个 .gsp 文件中。如果我将此脚本移动到 proj 文件夹中的外部文件(在 assets/javascript 下)。页面未正确呈现。我的意思是很少有组件没有被渲染。我将外部文件引用放在标签之前,还尝试将 GSP 的所有内容放在前面。如果没有上面提到的 javascript,文件中的所有其他脚本在引用文件的任何地方都运行良好。当我将 javascript 从 GSP 移动到 index.js 时。出现此问题。

【问题讨论】:

    标签: javascript jquery grails grails-2.4


    【解决方案1】:

    这不是 JavaScript。这是一个使用 taglib 和 Groovy 代码的 Grails GSP 表达式。它在运行时生成 JavaScript,将其写入发送到浏览器的 HTML,这就是它在 GSP 中工作的原因。但是没有处理 .js 文件来查找 GSP 表达式、taglib 调用、Groovy 代码等 - 这些文件被假定为静态 JavaScript。

    要在 .js 文件中使用它,您需要获取生成的 JavaScript 代码,这可以从您的浏览器中获得 - 查看生成页面的源代码以查看它。

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多