Javascript 单击按钮方法在enyo.js中不起作用,但在加载列表或转发器时工作良好
我有一个repeater.js,在其中我获取加载值。这是setupItem方法 我想在点击一个按钮时得到相同的值。这个问题在列表和中继器的情况下都会出现…数据正在加载,但在按钮上它不工作…有人能帮忙吗Javascript 单击按钮方法在enyo.js中不起作用,但在加载列表或转发器时工作良好,javascript,enyo,Javascript,Enyo,我有一个repeater.js,在其中我获取加载值。这是setupItem方法 我想在点击一个按钮时得到相同的值。这个问题在列表和中继器的情况下都会出现…数据正在加载,但在按钮上它不工作…有人能帮忙吗 enyo.kind({ name: "enyo.sample.RepeaterSample", classes: "enyo-fit repeater-sample", components: [ {kind: "Repeater", onSetupItem
enyo.kind({
name: "enyo.sample.RepeaterSample",
classes: "enyo-fit repeater-sample",
components: [
{kind: "Repeater", onSetupItem:"setupItem", components: [
{name:"item", classes:"repeater-sample-item", components: [
{tag:"span", name: "personNumber"},
{tag:"span", name: "personName"}
]}
]},
//{kind: "onyx.Button", content:"Fetch", ontap:"setupItem"}
],
create: function() {
this.inherited(arguments);
this.$.repeater.setCount(this.people.length);
this.peopleChanged();
},
published: {
people: []
},
peopleChanged: function() {
for(var i=0;i < 5;i++){
this.people[i]="art "+i;
}
this.$.repeater.setCount(this.people.length);
},
setupItem: function(inSender, inEvent) {
var index = inEvent.index;
var item = inEvent.item;
alert(this.people[index]);
var person = this.people[index];
//item.$.personNumber.setContent((index) + ". ");
item.$.personName.setContent(person);
//item.$.personName.applyStyle("color", person.sex == "male" ? "dodgerblue" : "deeppink");
},
});
enyo.kind({
名称:“enyo.sample.RepeaterSample”,
课程:“enyo fit中继器样本”,
组成部分:[
{kind:“Repeater”,onSetupItem:“setupItem”,组件:[
{name:“item”,class:“repeater sample item”,组件:[
{标记:“span”,名称:“personNumber”},
{标记:“span”,名称:“personName”}
]}
]},
//{kind:“onyx.Button”,内容:“Fetch”,ontap:“setupItem”}
],
创建:函数(){
这是继承的(论点);
this.$.repeater.setCount(this.people.length);
这个。人变了();
},
出版:{
人:[]
},
peopleChanged:function(){
对于(变量i=0;i<5;i++){
这.人(i)="艺术"+i,;
}
this.$.repeater.setCount(this.people.length);
},
setupItem:功能(inSender、inEvent){
var指数=inEvent.index;
var item=inEvent.item;
警报(此.people[索引]);
var person=this.people[index];
//项目.$.personNumber.setContent((索引)+“);
项目$.personName.setContent(人);
//item.$.personName.applyStyle(“颜色”,person.sex=“男性”?“道奇蓝”:“深粉色”);
},
});
我想你可能对这里需要发生的事情感到困惑。setupItem方法只应在对其执行.setCount()或.build()操作时,响应列表引发的onSetupItem事件时调用
因此,按钮的ontap处理程序应该设置数组的内容,然后更改列表上的计数(使用setCount())或call.build()直接在上面。y您不将该项保存在全局val中并在单击时使用它吗?@CodeJack如果我通过onSetupItem调用,则列表或中继器类型仅通过方法setupItem获取数据。如果我删除此onSetupItem,则它根本不加载数据……我想像调用自定义方法一样调用该方法……我不知道如何使用enyo提供该功能,但如果您无法在按钮单击时加载数据,一种方法是您可以在按钮单击时完全加载此中继器,而不仅仅是中继器中的数据。。。。