代码之家  ›  专栏  ›  技术社区  ›  arjun

将framework7的handlebar变量传递给函数

  •  0
  • arjun  · 技术社区  · 6 年前

    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

    1 回复  |  直到 6 年前
        1
  •  1
  •   Anees Hikmat Abu Hmiad    6 年前

    您可以通过如下方式构建自定义辅助对象来完成此操作:

    /* 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;
    });
    

    在你的路线上会是这样的:

    '.....<div class="item-after">{{millisToMinutesAndSeconds yourMillisValue}}</div>'....