在Angular2

时间:2017-03-01 14:33:54

标签: wakanda

当我尝试在Wakanda studio 1.1.3中运行我的页面时,我在编译时将TS转换为JS时出错。它显示一个错误,指出“无法找到数据存储区”;这是我的wakanda数据库中的内容。还有其他人得到同样的错误吗?

这是代码:

this.wakanda.catalog.then(ds=>{
    ds.TestDatabase.testmethod().then(op=>{
        console.log(op);
    });
});

我的wakanda.service.ts是以下

import {WakandaClient} from 'wakanda-client/browser/no-promise';

export class Wakanda {

  private _client: WakandaClient;
  private _catalog;

  constructor() {
    //this._client = new WakandaClient({ host: 'http://127.0.0.1:8081' });
    this._client = new WakandaClient({});
    this._catalog = null;
  }

  get catalog() {
    if (!this._catalog) {
      return this._client.getCatalog().then(c => {
        this._catalog = c;

        return c;
      });
    }

    return Promise.resolve(this._catalog);
  }

  get directory() {
    return this._client.directory;
  }

  get wakandaClientVersion() {
    return this._client.version();
  }
}

其中TestDatavase是我的数据存储区中的一个表,并且有一个名为testmethod的方法。

  

[默认]   /Users/adithyavinayak/Documents/Wakanda/solutions/TestDatabase/TestDatabase/web/src/app/home/home.component.ts:21:8   属性“TestDatabase”在“Catalog”类型上不存在。 [默认]   检查已完成4个错误

image

即使我在编译期间调用任何数据存储区,也会发生这种情况。

1 个答案:

答案 0 :(得分:1)

此问题的解决方案是将目录的返回类型用于任何

this.wakanda.catalog.then((ds:any)=>{
    ds.TestDatabase.testmethod().then(op=>{
        console.log(op);
    });
});

这个在编译期间没有任何问题。