草庐IT

Templates

全部标签

javascript - 使用 mustache 动态渲染部分模板

有没有办法动态注入(inject)部分模板(并使其在Ruby和Javascript中以相同的方式工作)?基本上,我试图在列表中呈现不同类型的对象。我能想到的最好的是:{{#items}}{{#is_message}}{{>message}}{{/is_message}}{{#is_picture}}{{>picture}}{{/is_picture}}{{/items}}我对这种方法并不太感兴趣。有没有更好的办法?另请注意,View的不同类型模型可能具有不相似的字段。我想我总是可以使用最小公分母并让数据哈希包含html,但我宁愿使用mustache模板。 最

javascript - 我们可以用 ES6 模板替换现有的 JS 模板解决方案吗?

ES6的一个非常吸引人的特性是它内置的模板字符串。在这个时候,由于转换为ES5是跨浏览器兼容性的必要条件,我很好奇转换后的ES6模板与现有解决方案(例如Mustache、Handlebars、Jade等)之间的性能差异是什么。显然,如果您需要来自模板语言,ES6模板可能无法满足您的所有需求,但如果您正在执行基本模板,可以说ES6模板字符串可以取代您当前的模板引擎是否公平? 最佳答案 ES6中的模板字符串与在JavaScript中实现的各种模板引擎并没有真正的关系。大多数模板引擎(Underscore、Lodash、Mustache、

javascript - Pug 从模板中的另一个文件调用 js 函数

我将近四个小时都无法解决这个问题,而且我找不到任何对此类问题有帮助的文档。这就是问题所在,我正在使用pug/jade模板,我想在pug模板中调用函数来转换一些数据这是主模板:/**maintemplate*/sectioneachpetinpets.pet.photo-columnimg(src=pet.photo).info-columnh2=pet.namespan.species=(pet.species)pAge:#{calculateAge(pet.birthYear)}//hereIneedtocallcalculateAgefunctionifpet.favFoodsh4

javascript - 使用 doT.js 递归

假设我有这样的数据结构:{list:[{name:"1",children:[{name:"1.1",children:[]},{name:"1.2",children:[{name:"1.2.1",children:[]}]}]},{name:"2",children:[{name:"2.1",children:[{name:"2.1.1",children:[]},{name:"2.1.2",children:[]},{name:"2.1.3",children:[]}]},{name:"2.2",children:[]},{name:"2.3",children:[]}]},{n

javascript - 服务器端的 jQuery 模板

有没有人试过用jQuerytemplates(或任何其他基于JavaScript的模板)在服务器端使用类似env.js的东西?我正在考虑尝试它,看看通过能够在Web应用程序的客户端或服务器端呈现相同的模板可以获得哪些好处,但我希望有人可能已经有一些经验,或者知道现有项目这样做。与一些更传统的模板引擎相比,我特别想知道我可能遇到的任何性能问题。回顾一下:有没有人在服务器站点上使用过jquery模板?如果是这样,是否存在任何性能问题或我可能遇到的其他问题? 最佳答案 env.js是不必要的。我正在规范和重新实现JQuery模板,以允许它

javascript - drupal 6 和 jquery 1.4/1.5

在drupal6中有没有一种方法可以在非管理页面中使用jquery1.5/1.4而不会破坏非管理页面上的核心功能? 最佳答案 是的。安装并启用http://drupal.org/project/jquery_update下载所需的jQuery版本,并将其与模块中包含的版本放在一起。编辑模块functionjquery_update_jquery_path(){$curr_uri=request_uri();if(strpos($curr_uri,'admin')>0||strpos($curr_uri,'edit')>0||strp

javascript - meteor : wait until all templates are rendered

我有以下模板代码{{#eachthis}}{{>listItem}}{{/each}}{{username}}我想在呈现所有“listItem”后执行代码。其中大约有100个。我尝试了以下Template.home.rendered=function(){//isthiscalledonceallofits'subviews'arerendered?};但它不会等到所有View都加载完毕。了解何时加载所有subview模板的最佳方式是什么? 最佳答案 我是这样处理的:client/views/home/home.html{{#ifi

javascript - Angular : Selectively compile templates

我知道ng-non-bindable允许给定元素及其子元素不被编译为模板。它似乎被设计为根据需要在整个模板中穿插。有没有办法告诉Angular不要处理给定的元素,而是在其中“戳洞”并允许处理选定的子元素?例如,我很想能够做这样的事情:{{2+2}}{{2+2}}并让它输出:{{2+2}}4我知道ng-non-bindable甚至不允许处理ng-bindable,即使它存在。但是,是否存在允许像我所表达的那样处理模板的方法?更彻底地说,我理想的解决方案是在找到ng-bindable之前不会处理任何Angular,而不仅仅是大括号表达式。例如:{{n+2}}{{n+2}}会导致:{{n+2

javascript - 尝试显示数据时出现 mustache 循环错误

我在mustache中做循环时遇到问题。基本上,用户有能力为产品添加选项。每个选项可以有超过1个选择。他们也一起选择名称+价格。我收到以下错误:UncaughtError:未打开的部分:选择我的代码:varchoices=newObject();$("[name='choice_name']").each(function(){varc_name=$(this).val();$("[name='choice_price']").each(function(){varc_price=$(this).val();choices.choice_name=c_name;choices.choi

javascript - 简单的递归下降解析器?

我正在为一种编译成JS(如果相关的话)的模板语言编写解析器。我从几个简单的正则表达式开始,它们似乎可以工作,但正则表达式非常脆弱,所以我决定改写一个解析器。我首先编写了一个简单的解析器,它通过压入/弹出堆栈来记住状态,但事情一直在升级,直到我手上有了一个递归下降解析器。不久之后,我比较了我以前所有解析方法的性能。递归下降解析器到目前为止是最慢的。我被卡住了:是否值得为一些简单的事情使用递归下降解析器,或者我是否有理由走捷径?我很想走纯正则表达式路线,它非常快(几乎比RD解析器快3倍),但在某种程度上非常hacky和不可维护。我认为性能不是非常重要,因为编译后的模板被缓存了,但是递归下降