我正在尝试在ToolBar中动态创建按钮列表。事件不会消失,当我尝试更改属性时,我得到一个“未捕获的typedef:无法在未定义时调用methed setcaption”我有以下代码创建按钮,
LoadTabs: function()
{
this.$.tabs.createComponents([
{name: "mycusbut", caption: "b",onclick: "btnClick" }, // this event never goes off!!!!
{caption: "b"},
{caption: "c"}
]);
// this.$.frediop.setCaption("Put some text here"); // handle the button click
},
事件btnClick永远不会消失,以及尝试更改属性的代码。
btnClick: function()
{
this.$.mycusbut.setCaption("Put some text here"); // get a undefined object error
}
答案 0 :(得分:2)
我们在这里创建按钮的方式将使它们出现在标签对象上。如果要引用那些,则需要使用以下语法:
this.$.tabs.$.mycusbut
关于未被调用的代码的第二个问题是更加隐蔽...因为您正在选项卡对象上创建按钮,它正在查找选项卡对象上的功能,这可能不是您想要的。您可能希望将tab对象分离为自己的类型,并且在单击按钮时可以触发事件,或者您希望采用不同的方法来创建对象。也许制作一个可以动态创建按钮的工具栏是一种很好的方法吗?
编辑:更简单的方法是告诉createComponent将所有者设置为主类。改变如下:
this.$.tabs.createComponents([
{name: "mycusbut", caption: "b",onclick: "btnClick" },
{caption: "b"},
{caption: "c"}
], {owner: this});
现在您的代码应该按预期工作。