0

我注意到可以在列部分的模板中包含一些剑道逻辑和变量。

这是我的专栏部分模板中的一个示例

  template: "#= myVariable#  #if(myBoolean) {# <img src='/images/myImage.png' /> #}#"

请注意,myVariable 和 myBoolean 是网格每一行的变量(字段)。不幸的是,我在模板的命令部分尝试了相同的操作。我收到以下错误“ReferenceError: myVariable is not defined”

有没有办法在列中添加变量?

4

1 回答 1

0

据我所知,columns.command甚至没有记录使用模板:尽管它有效。您可以执行以下操作:

columns   : [
    {
        command: {
            template : "# console.log('this', this); console.log('data', data); # toto"
        }
    },
    ...
]

甚至喜欢:

command: {
    template : function (arg) {
        console.log("this" ,this);
        console.log("arg", arg);
        console.log("data", data);
        return "toto";
    }
}

但是模板返回的内容必须是 astring并且在浏览器的控制台中您会看到 ,是this对象并且是包含网格数据的。windowargcommanddataarray

虽然您可以包含额外的参数:

command: {
    template : function (arg) {
        console.log("this" ,this);
        console.log("arg", arg);
        console.log("arg.a", arg.a);
        console.log("data", data);
        return "toto";
    },
    a: "extra argument"
}

我在其中添加了一个额外的a参数,arg.a您仍然无法访问当前行data,因为该元素仍未插入。

而不是我建议做的事情是:

columns   : [
    {
        title: " ",
        template: "#= myVariable#  #if(myBoolean) {# <img src='/images/myImage.png' /> #}#"
    },
    ...
]

您不需要将其作为命令,对吗?为什么需要它作为命令?

于 2013-03-14T17:56:10.653 回答