javascript - 将framework7的 Handlebars 变量传递给函数

标签 javascript html-framework-7

在虚拟列表中,我有一个名为 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/

相关文章:

javascript - 如何在没有按钮的情况下在 Highcharts 中动态添加系列? ( Angular JS)

javascript - 在 Meteor 中调用 http 后更新模板

javascript - 为什么 Firebase Auth 在登录时重新加载页面?

ios - 带有 Cordova 垂直滚动的 Framework7 在 iOS 上不起作用

css - 如何使用framework7更改布局主题颜色?

javascript - 如何在页面加载时激活 jquery 函数?

javascript - 我将如何区分不同类型的异常?

javascript - 如何让 Swagger 将 API key 作为 http 而不是在 URL 中发送

android - 在 Android 移动设备中打开键盘时出现图像大小调整问题

javascript - 使用 ionic 电容器和 Framework7 设置本地通知