首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法抛出事件enyo.model

无法抛出事件enyo.model
EN

Stack Overflow用户
提问于 2015-10-27 16:09:41
回答 1查看 102关注 0票数 0

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

代码语言:javascript
复制
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();
}

};

在这里,我以Uncaught TypeError: accountSetup.fetch is not a function的身份收到错误。

如果我删除了enyo.model的注释,我得到的错误是Uncaught TypeError: this.doMyEvent is not a function

问题发生在哪里?

EN

回答 1

Stack Overflow用户

发布于 2015-10-28 01:42:43

好吧,有几件事。

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

我认为您可能需要更仔细地看看enyo.Model是如何工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33362712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档