【问题标题】:How to create a tree in the vscode activity bar with rest api data如何在 vscode 活动栏中使用rest api数据创建树
【发布时间】:2019-08-02 06:57:39
【问题描述】:

我是 javascript 新手,我是在 vscode 中创建树视图的结构。

创建树视图时如果我将 JSON 直接传递给树它会创建一棵树,但是当我通过调用其余 API 传递数据时,不会创建树。

这是因为在从 rest api 检索数据之前,已将空数据变量传递给树。

如何解决?

提前致谢

class name {
gettreeItem(element){
//code
}

getChildren(element) {
if(element){
//some code here
}else{
return Promise.resolve(this.getDeps(restcall()))
}

restcall(){
var options = { 
        method: 'GET',
        url: 'url',
        headers: 
          { 
            Authorization :'Basic '+ Buffer.from('uid:pas').toString('base64') 
          } 
    };
return new Promise(function(resolve,reject){
        request.get(options,function(err, resp, body){
            if (err) {
                reject(err);
            } else {
                return resolve(JSON.parse(body));
            }
})
)
}
getDeps(JsonData){
//But here the Json Data is empty beacuse this function is called before the data is retrived from the rest api
}
}

【问题讨论】:

    标签: node.js visual-studio-code vscode-extensions


    【解决方案1】:

    我假设您已经有了可以生成树视图的工作原型。现在,一旦您从 REST 调用中获取数据,之后您必须刷新树视图。

    private _onDidChangeTreeData: EventEmitter<X | undefined> = new EventEmitter<X | undefined>();
    readonly onDidChangeTreeData: Event<X | undefined> = this._onDidChangeTreeData.event;
    
    refresh(): void {
        this._onDidChangeTreeData.fire(undefined);
    }
    

    将 X 替换为您的数据类型,一旦您的数据提取完成,请调用我们在上面创建的刷新方法。这将解决您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-31
      • 2023-03-05
      • 2015-12-12
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多