在虚拟列表中,我有一个名为 duration
的变量,以毫秒为单位。
我有一个简单的函数,可以将其转换为分钟:秒
如何将该变量传递给函数?
function success(list){
var virtualList = app.virtualList.create({
// List Element
el: '.virtual-list',
// Pass array with items
items: list,
// List item Template7 template
itemTemplate:
'<li>' +
'<a href="#" class="item-link item-content">' +
'<div class="item-inner">' +
'<div class="item-title-row">' +
'<div class="item-title">{{name}}</div>' +
// How to pass handlebar variable?
'<div class="item-after">'+millisToMinutesAndSeconds(parseInt('+{{duration}}+', 10))+'</div>' +
'</div>' +
'<div class="item-title-row">' +
'<div class="item-subtitle">{{artist}}</div>' +
'</div>' +
'</div>' +
'</a>' +
'</li>',
// Item height
height: app.theme === 'ios' ? 63 : 73,
});
}
function millisToMinutesAndSeconds(millis) {
var minutes = Math.floor(millis / 60000);
var seconds = ((millis % 60000) / 1000).toFixed(0);
return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
}
如您所见,这是行不通的。如何获取该值并将其传递给我的函数 millisToMinutesAndSeconds
?
最佳答案
您可以通过构建一个自定义助手来做到这一点,如下所示:
/* You can use Handlebars.registerHelper...etc if its hbs */
Template7.registerHelper('millisToMinutesAndSeconds', function(millis){
var minutes = Math.floor(millis / 60000);
var seconds = ((millis % 60000) / 1000).toFixed(0);
return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
});
在你的 route 将是这样的:
'.....<div class="item-after">{{millisToMinutesAndSeconds yourMillisValue}}</div>'....
关于javascript - 将framework7的 Handlebars 变量传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51972472/