原生列表视图的url组件会将链接也显式的填充到字段列,如果遇到该字段的链接特别长且参数众多,表格就会撑的很难看,这就需要量身为其定制一种纯显示链接文字的widget:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | var core = require('web.core'); var list_widget_registry = core.list_widget_registry; var _t = core._t; /**  * author: i@renjie.me  */ var Column = list_widget_registry.get('field'); var ColumnLink = Column.extend({     PROTOCOL_REGEX: /^(?!\w+:?\/\/)/,     _format: function(row_data, options) {         var value = row_data[this.id].value;         if (value) {             return _.template("<a href='<%-href%>' target='_blank'><%-text%></a>")({                 href: value.trim().replace(this.PROTOCOL_REGEX, '//'),                 text: _t("Link")             });         }         return this._super(row_data, options);     } }); list_widget_registry.add('field.link', ColumnLink); | 
之后就可以在列表视图中直接使用诸如<field name=”content_url” widget=”link”/>形式的链接文字字段组件