如果post.published?.post/Poststuff否则.post.gray/Poststuff我已经用railshelper实现了它,但它看起来很丑。=content_tag:div,:class=>"post"+("gray"unlesspost.published?).to_sdo/Poststuff第二种变体:=content_tag:div,:class=>"post"+(post.published??"":"gray")do/Poststuff是否有更简单且特定于haml的方法?更新。特定于Haml,但仍然不简单:%div{:class=>"post"+("g
您好!我一直在玩弄HAML,并将一些View部分从.erb转换为.haml。但是当我尝试转换.js.erbView时,它只是不会执行。例如。似乎我的.js.haml没有执行,而.js.erb正常工作。这是我的.js.erb(同样有效):$("#data_form").html(""form"))%>");$("#data_grid").prepend(""quote",:locals=>{:quote=>@quote})%>");$("#quote_author,#quote_body").each(function(i,e){$(this).val("");});这是我要替换的内容:
我再次遇到nanoc中文件的问题。这次我想将自定义文件slide.js附加到我的博客,但我不能(不知道为什么-可能是我的路由有问题)。这是我的路线:compile'/js/*/'do#don’tfilterorlayoutend...route'/js/*/'do/'js'/+item.identifier.chop+'.js'end在我的布局的head部分我放了:%script{:type=>"text/javascript",:src=>"/js/slide.js"}/(是的,它是一个HAML)。谁能帮我解决这个问题?将不胜感激。 最佳答案
似乎在HAML的:javascript过滤器内部,没有Ruby代码允许,甚至没有评论。所以这是不允许的::javascript-1.upto(10)do|i|:javascript-#justacommentnottoshowtopublic(有人说没有办法在:javascript过滤器。是真的吗?但似乎唯一允许的是:javascript$('#aDiv').html('#{a_ruby_variable}');只有这个#{}是允许的。不允许使用Ruby的其他内容? 最佳答案 正如我在您的其他问题中所说,过滤器(几乎)完全与Haml
有没有办法向HAML过滤器添加选项(HTML属性)?我想做这样的事情::javascript{:'data-turbolinks-eval'=>'false',:foo=>'bar'}if(someCondition){doSomething();}结果是:if(someCondition){doSomething();}我能得到的最接近的是:%script{:'data-turbolinks-eval'=>'false',:foo=>'bar'}if(someCondition){doSomething();}缺点是除非使用:javascript过滤器,否则不能在HAML中缩进JS。
我刚刚开始在我的Rails应用程序中使用AngularJS,因为我习惯在Rails中使用haml模板,所以我想在客户端对AngularJS做同样的事情。问题是我不知道在哪里读取haml文件。我有一个投资者模型,我正在尝试将“显示”模板转换为haml,因为它是最容易开始的。这是我的与显示相关的AngularJS代码投资者.js.咖啡#Setupthemodule&routeangular.module("investor",['investorService']).config(['$routeProvider',($provider)->$provider.when('/investo
给定这个Vue2组件:Vue.component('read-more',{props:{'text':String,'clamp':{type:String,default:'ReadMore'},'less':{type:String,default:'ReadLess'},'length':{type:Number,default:100}},template:`{{truncate(text)}}=length"@click="toggle()">{{clamp}}{{text}}=length">{{less}}`,methods:{truncate(string){if(s
我在我的sinatra应用程序中使用内联haml模板。我有一个包含如下部分的@@layout:#message-ifflash[:notice]%section.notice=flash[:notice]-ifflash[:error]%section.error=flash[:error]当我使用flash[:notice]="Hello!"在route并单击链接,下一页在#messagediv中愉快地说“你好”。太棒了。所以这就是问题所在,我正在使用right.js为我的应用程序添加一些ajax功能,rack-flash的行为充其量是不一致的。大多数情况下,您单击一个链接(.lin
我有一个相当强大的项目,它的所有模板都是用Slim和一点Haml实现的。我正在考虑将项目转移到基于Node.js的结构(可能建立在Tower.js或类似的东西之上;可能是Meteor),但是我想继续使用Slim或Haml作为模板,而不是转移到另一个模板引擎。到目前为止,有没有人这样做过或花时间弄清楚如何做到这一点?如果有,您的发现是什么? 最佳答案 Tower.js包装了express.js模板引擎系统,因此您应该能够通过将以下内容添加到配置中来使用任何express.js模板引擎Tower.View.engine="haml"To
在HAML中,我们可以使用-#somecommentanditwon'tbecomeHTMLandmadepublic但如果它在里面:javascript-#commentslikethislinewillbreakthejavascriptinterpreterasitbecomesjavascriptcode//soweareforcedtousecommentlikethisandispubliclyviewable有没有办法让它不公开? 最佳答案 #{}-block被评估,所以你可以写#{#thisisarubycommen