gpt4 book ai didi

javascript - 无法抛出事件 enyo.model

转载 作者:行者123 更新时间:2023-12-03 08:30:21 26 4
gpt4 key购买 nike

我有以下代码。当我收到 ajax 查询的响应时,我尝试将事件发送到其他类型。我正在使用 enyo JsonpSource。

new enyo.JsonpSource({ name: "json" });
//new enyo.AjaxSource({ name: "json" });

enyo.kind({

name: "AccountSetup",


//kind: "enyo.Model",

source: "json",

options: { parse: true },

getUrl: function () {

return "https://223.30.248.51:1926/HotelInfoServlet?Q=ACTIVATE&UA=1300029800&MODE=JSON";

},

events:
{ onMyEvent: ''
},

gotData : function(){

//this.inherited(arguments);
console.log("In gotData \n");
// console.log(tmp);
console.log(accountSetup);
this.doMyEvent({answer:accountSetup});

},
//this.doMyEvent({answer:accountSetup});
success : function(){
alert("Here!\n");
},

});



var accountSetup = new AccountSetup();

accountSetup.fetch();

/* process callback data*/

function callback (data)
{
if (data.type == "accountsetup") {
console.log(data);
console.log(this);
var acsetup = new AccountSetup();
accountSetup= data;
//acsetup = data;
console.log(acsetup);
//acsetup.doMyEvent({answer : data});
//accountSetup.gotData();
acsetup.gotData();
}

};

在此,我收到错误如下未捕获类型错误:accountSetup.fetch 不是函数

如果我删除了 enyo.model 的注释,则会收到错误消息:未捕获类型错误:this.doMyEvent 不是函数

问题出在哪里?

最佳答案

好的,有几件事。

  1. 它必须是 Model 或 ModelController(也许是 Collection)才能具有 fetch() 方法。
  2. 模型并非基于 enyo.Object,因此它们的行为与其他 Enyo 对象略有不同,最重要的是,在本例中,就 Enyo 事件系统的工作方式而言。我想,当您解析模型的数据时,您可以从模型中发出一个事件。
  3. 我对 gotData() 如何/何时运行感到困惑。如果您想在解析数据时执行某些操作(我假设您这样做,因为您设置了 parse:true 选项),那么您应该提供 parse() 方法作为覆盖。在其中,您将获取原始数据并返回您希望模型实际拥有的数据。

我认为您可能需要更仔细地了解如何 enyo.Model有效。

关于javascript - 无法抛出事件 enyo.model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33362712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com