【发布时间】:2018-11-30 05:20:45
【问题描述】:
我正在寻找一个可以为渲染选项指定模板的示例,以便我可以将选项渲染为两部分:具有背景颜色和值的跨度。
类似https://jqueryui.com/selectmenu/#custom_render
jsviews 标签实现支持这个吗?
非常感谢。
【问题讨论】:
标签: jsviews jquery-ui-selectmenu
我正在寻找一个可以为渲染选项指定模板的示例,以便我可以将选项渲染为两部分:具有背景颜色和值的跨度。
类似https://jqueryui.com/selectmenu/#custom_render
jsviews 标签实现支持这个吗?
非常感谢。
【问题讨论】:
标签: jsviews jquery-ui-selectmenu
可能还有其他方法,包括制作您自己的自定义标签 - 不使用 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 );
};
}
});
【讨论】: