如何将CoffeeScript文件与视图关联?

问题描述

| 刚刚安装了Rails 3.1 rc1,并尝试使用新资产管道来管理javascript的最佳方法 默认情况下,所有coffeescript都编译为单个application.js文件,这是一件好事。 每个单独的咖啡脚本文件都附加到js文件中,并包装在通过调用方法执行的匿名函数中 一种常见的情况是使用一些jquery将各种形式转换为ajax形式,更新UI等。 这些脚本中有许多是特定于控制器或动作的,我尝试使用“常规”方式来处理此问题, 由于所有内容都包裹在一个匿名函数中,我该如何执行 特定控制器/动作的代码,默认情况下,所有匿名函数都在执行 我确实玩过一些技巧,将控制器和动作名称加载到js变量中,然后在 coffeescript检查那些有条件地运行代码,我不是很喜欢 我最初的想法是,每个coffee文件都将包含一个js名称空间/对象,而我将从视图中调用特定的名称/对象, 将使用default_bare = true配置来加标 请参阅如何在Rails 3.1 for CoffeeScript中使用选项“ --bare”? 编辑 环顾四周:这看起来可能是正确的方法-Rails 3.1和Coffeescript出现“找不到变量”错误     

解决方法

有两种常见方法: 使行为取决于特定元素的存在。例如,用于运行注册表的代码应以类似以下内容的开头
if $(\'#signup\').length > 0
使行为取决于
body
元素上的类。您可以使用ERB设置身体类别。这对于样式表通常也是理想的。该代码将类似于
if $(\'body\').hasClass \'user\'
    ,gistyle是一个简单的工具,可帮助您运行特定于动作的javascript代码。 按照其设置,您可以在body元素中设置一些数据属性,以表示当前的控制器和动作名称。然后,它将仅在加载相应视图时调用该操作。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...