traverson.js集成到Angular2应用程序中

时间:2016-03-01 14:16:45

标签: javascript node.js angular hateoas

有没有人成功将traverson集成到Angular2应用程序中?如果是这样,是否有可用的步骤?

尝试将traverson.js集成到用于HATEOAS遍历的Angular2应用程序中。尝试使用此技术(https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.9qx93kgki)拉入traverson.js。

遇到依赖性问题,从traverson使用“require()”开始。典型错误:

  

未捕获错误:尚未为上下文加载模块名称“minilog”:_。使用require([])

还尝试使用ngUpgrade引入traverson-angular(基于角度1.x的模块),并遇到更多的依赖性问题......

1 个答案:

答案 0 :(得分:0)

我设法简单地安装了traverson并在角度服务中使用它:

@Override
public int getItemCount() {
  if (mItems.size() == 0) {
     mRecyclerView.setVisibility(View.INVISIBLE);
  } else {
     mRecyclerView.setVisibility(View.VISIBLE);
  }
  return mItems.size();
}

然后,在您的服务中:

npm install traverson

这里的问题是没有最新的traverson类型,所以你有一个混合的JS / TS代码。

我没有设法直接使用observable,这就是为什么我通过了一个承诺,顺便说一句,这更简单。

请注意,traverson使用自己的http客户端。如果要使用有角度的http客户端,则需要创建一个桥接类,它实现以下方法:

// imports

const traverson = require('traverson');

@Injectable() 
export class Service { 
   public getData(): Observable<Data> {
      const promise: Promise<Counterparty> = new Promise((resolve, reject) => { 
         traverson 
         .from('http://my-api.com') 
         // Add your traverson options here
         .follow('link', 'other-link')
         .getResource((error, data) => { 
              if (error) { 
                reject(error); 
              } else { 
                resolve(data); 
              });
      }
      return Observable.fromPromise(promise); 
   }
}

get(uri: string, options: any, callback: (err, response) => void); del(uri: string, options: any, callback: (err, response) => void); post(uri: string, options: any, callback: (err, response) => void); put(uri: string, options: any, callback: (err, response) => void); patch(uri: string, options: any, callback: (err, response) => void); 是遍历选项。

希望这有帮助