【问题标题】:How to specify custom rendering template for options in {{selectmenu}} tag如何为 {{selectmenu}} 标签中的选项指定自定义渲染模板
【发布时间】:2018-11-30 05:20:45
【问题描述】:

我正在寻找一个可以为渲染选项指定模板的示例,以便我可以将选项渲染为两部分:具有背景颜色和值的跨度。

类似https://jqueryui.com/selectmenu/#custom_render

jsviews 标签实现支持这个吗?

非常感谢。

【问题讨论】:

    标签: jsviews jquery-ui-selectmenu


    【解决方案1】:

    可能还有其他方法,包括制作您自己的自定义标签 - 不使用 jQuery UI,或创建{{selectmenu}} 标签控件here{{myselectmenu}} 的派生版本(使用baseTag)。

    但这里有一个快速建议,您可以使用一种方法:

    {^{selectmenu person name="person" onBind=~onbind}}
      {^{for people}}
        <option data-style="{{:style}}" value="{{:id}}">{{:name}}</option>
      {{/for}}
    {{/selectmenu}}
    

    数据:

    people: [
      {name: "John Resig", id: "1", style: "background-image: url(...);"},
      ...
    

    代码:

    pageTmpl.link("#page", model, {
      onbind: function(val) {
        // override onBind for this tag control instance
        this.baseApply(arguments);
    
        // override _renderItem for this widget instance:
        this.widget._renderItem = function( ul, item ) {
            var li = $( "<li>" ),
              wrapper = $( "<div>", { text: item.label } );
    
            if ( item.disabled ) {
              li.addClass( "ui-state-disabled" );
            }
    
            $( "<span>", {
              style: item.element.attr( "data-style" ),
              "class": "ui-icon " + item.element.attr( "data-class" )
            })
              .appendTo( wrapper );
    
            return li.append( wrapper ).appendTo( ul );
          };
        }
    });
    

    【讨论】:

    • 谢谢你,我最终接受了你的快速建议,效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 2015-01-20
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多