如何在XTemplate extjs 4中调用函数

时间:2017-01-17 06:30:05

标签: javascript extjs

这是我的观点

Ext.define('ValidationErrorView', {
    extend : 'Ext.panel.Panel',
    alias : 'widget.validationErrorView',
    layout : 'fit',
    overflow : 'auto',
    autoScroll : true,
    xTitle : 'Title',
    XFun :function(name){
        return "Hello " + name;
    }

    border : false,

    initComponent : function() {
        var tpl = new Ext.XTemplate(
            '<tpl for=".">',
            '<div>{xTitle}',
            '<p>{[xFun(name)]}',
            '</div>',
            '</tpl>'
        );
    }   
});

我想在模板中使用xTitle和xFun()。我正在使用{[..]}来调用我的函数,但这不起作用?如何在模板中同时使用xTitle和XFun()?

2 个答案:

答案 0 :(得分:2)

以下列格式调用该函数:

initComponent : function() {
    var tpl = new Ext.XTemplate(
        '<tpl for=".">',
        '<div>{xTitle}',
        '<p>{[this.xFun(name)]}',
        '</div>',
        '</tpl>',
        {
            XFun :function(name){
               return "Hello " + name;
            }
        }
    );
}

这肯定会有用。我已经删除了函数Xfun,它不在initComponent()之内。

答案 1 :(得分:0)

initComponent : function() {
  var tpl = new Ext.XTemplate(
    '<tpl for=".">',
    '<div>{xTitle}',
    '<p>{[this.xFun(values.name)]}',
    '</div>',
    '</tpl>',
    {
      XFun :function(name) {
        return "Hello " + name;
      }
    }
  );
}

this values.X(您所指的变量名)为我工作。 并且 xTitle 可以像这样从 XFun 函数中访问。xTitle..