车把 - 调用部分时连接字符串参数
Handlebars - Concat string parameters when calling partial
我想知道在使用 Handlebars 加载部分时是否可以将变量与另一个字符串连接起来。
{{partial logos this ns=../ns nsr=../nsr id=id+"something"}}
我想连接id+"something"
并将其存储到 id
中,这将发送到模板。
我正在使用自定义助手来加载零件(partial
(,这些零件将this
与车把提供的options.hash
合并。
这是一个更简单的方法。名为"concat"的帮助程序:
module.exports = function(){
var arg = Array.prototype.slice.call(arguments,0);
arg.pop();
return arg.join('');
};
用作:
{{>myPartial id=(concat "foo" myVar myOtherVar)}}
其实是有办法的。我已经尝试使用默认的部分加载器">",但我希望它也应该与"部分"一起使用。
你可以写一个这样的帮助程序
Handlebars.registerHelper( 'concat', function(path) {
return "/etc/path" + path;
});
并像这样称呼它
{{> responsive-image src=(concat '/img/item-tire.png') alt="logo" }}
我希望这有所帮助。
您可以像这样做一个稍微可重用的解决方案:
module.exports = function (json) {
var concat = '';
var flipArray = [];
for(var key in json.hash){
flipArray.push(json.hash[key]);
}
for(var i = (flipArray.length - 1); i >= 0; i--){
concat += flipArray[i];
}
return concat;
};
然后这样称呼它:
{{> icon name=(concat a="file-" b="pdf")}} // passes file-pdf to the partial under the hash value name
或
{{concat a="icon-" b="pdf" c="-Asdfasd" d="zxcvzxcvzxcvxz"}} // outputs icon-pdf-Asdfasdzxcvzxcvzxcvxz
帮助程序中向后循环的原因是,车把当前按声明顺序从最后一个到第一个列出它的哈希参数。
尝试关注。链接助手是我自己的帮助程序,用于添加上下文路径/us
Handlebars.registerHelper('link', function(option,parameter) {
return '/us' + option.hash.target;
});
Handlebars.registerHelper('concat', function() {
var outStr = '';
for(var arg in arguments){
if(typeof arguments[arg]!='object'){
outStr += arguments[arg];
}
}
return outStr;
});
那我就这样打了电话。我的网址有小狗
{{link target=(concat '/' url)}}
然后最后我得到了这样的输出/我们/小狗
不,这是不可能的。在帮助程序中使用串联。
{{partial logos this ns=../ns nsr=../nsr idKey=id idValue="something"}}
在 ES6 中,可以使用以下帮助程序: concat : (...strs) => strs.join('')
您可能还想跳过车把给出的参数,即: concat : (...strs) => strs.filter( arg => typeof arg !== 'object' ).join('')
如果您正在执行简单的a + b
串联,并且已经包含车把助手,则可以使用 add
助手:
{{> myPartial myVariable=(add someVariable "some string") }}
相关文章:
- 从查询字符串参数推断出正确的数据类型
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 如何在 OnClick 函数中传递字符串参数
- 使用Angular Resource查询具有字符串参数的REST API
- 如何在JavaScript函数中将字符串参数传递给Java方法
- 为javascript函数提供可能包含特殊字符的字符串参数
- 使用查询字符串参数筛选数据
- 将查询字符串参数与谷歌地图api v3服务结合使用
- 从 URL - AngularJS 获取动态查询字符串参数
- 函数中的 Javascript 字符串参数
- 将服务字符串参数转换为数组的 Angular 内部
- 将字符串参数传递给 JavaScript 函数
- 无法通过 ajax 将字符串参数传递给 php 函数
- 使用基于查询字符串参数的 Angular 填充选择元素
- 从标记中的 href 获取查询字符串参数
- 从带有字符串参数的函数中的元素中获取值
- 将字符串参数传递给 javascript 函数 mvc
- 将查询字符串参数添加到 GridView 项模板
- 将字符串参数从 JS 视图传递到控制器
- 使用 RegEx 进行 JavaScript 字符串参数编码