如何引用父Javascript Revealing Module Pattern对象

时间:2012-08-08 18:01:22

标签: javascript design-patterns kendo-ui

用KendoUI的可观察对象实现Revealing Module Pattern。以下是模块定义的Jfiddle link

我遇到的问题是在本地检索数据源时(如在jfiddle示例中)它工作正常,但是当我将其设置为检索远程数据时它不起作用。这是远程数据代码的jfiddle link(这在jfiddle中不起作用,因为它无法连接到我的webapi,但你明白了。)

问题似乎出现在数据源的Change事件中。当数据是本地数据时,它似乎都是按顺序执行的,所以当你引用this或self时它比正在与viewmodel交谈。当使用远程处理时,它会回调到更改函数,但似乎不再引用正确的对象,当我设置selectedContact时,它对表单上的绑定对象没有任何作用。

有没有人知道如何在数据源对象的Change方法中引用selectedContact对象?或者建议我哪里出错?

由于

1 个答案:

答案 0 :(得分:0)

您尝试使用json代替jsonp可能是一个问题。您可以在jsonp here上阅读。根据你在本地和远程工作的描述,这是我猜测问题的所在。尝试将数据源的数据类型从json更改为jsonp

transport: {
       read: {
           url: $('#urlLink').data('url') + '?tenantID=1&dataType=Contacts_Details',
           dataType: "jsonp",
           data: {
               actionName: function () {                        
                   return SelectedContactID;
               }
           }
       }
   }