【问题标题】:Wakanda how to use server method in mobile side?Wakanda如何在移动端使用服务器方法?
【发布时间】:2017-04-24 14:58:19
【问题描述】:

要在移动端绑定我的数据,它的工作原理如下:

getHeros() {
    this.wakanda.getCatalog().then(ds => {
        ds['Superhero'].query({orderBy:"ID desc",pageSize:3}).then(collection => {
            this.favoriteSuperheroes = collection.entities;
        });
    });
}

但是像这样我直接在桌子上工作。我有一种方法可以在服务器端为我提供我想要的一切。 Wakand 的文档告诉我这样做:

ds.Company.myDataClassMethod().then(function (result) {

});

不行,不能调用我的方法,有人能帮帮我吗?

【问题讨论】:

    标签: wakanda


    【解决方案1】:

    如果 table 上的 query() 对您有效,而调用 dataclasss 方法则无效。一个可能的原因是您的类方法未设置为对公众可用。

    请检查类方法的scope是否设置为“public”。 并测试您的方法是否可以通过 REST 直接访问: 127.0.0.1:8081/rest/Company/myDataClassMethod

    更新:在 ds 中添加类型“any”可以解决问题。看来

    this.wakanda.getCatalog().then(ds:any => { 
        ds['Company'].myDataClassMethod().then(result => {
            //Work with Result Here
        }); 
     });
    

    【讨论】:

    • 感谢您的回复。我可以在后端调用我的数据类方法,范围设置为公共,我可以通过 REST 直接访问。我想在移动端调用那个方法,不知道语法。
    • 您问题中的语法对我来说似乎是正确的。你有没有在“结果”中得到任何回报?
    • 我尝试 ds['Company'].method['myDataClassMethod'].then(function (result =>{ 但它不起作用。
    • 您的问题中的语法正确。它应该看起来像这样:this.wakanda.getCatalog().then(ds => { ds['Company'].myDataClassMethod().then(result => { }); });
    • 感谢您的回复。是的,我就是这么想的,但它不起作用。我收到以下消息:“类型 'DataClass' 上不存在属性 'myDataClassMethod()。”。然而这个方法存在并且是DataClass公司的一部分,我可以在后端调用它并且它可以工作,但不能在移动端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多