Aurelia的角度服务?

lux*_*lux 6 javascript aurelia

我还没有找到详细介绍如何从Angular 1.x迁移到Aurelia的文档.到目前为止,我只看到人们详细介绍了如何directive使用Aurelia重新制作Angular的概念@customElement.好的,很简单.但这些例子总是只是模拟数据.

也就是说,Angular Services是可以注入任何控制器/指令/服务的单例,并且通常允许从服务器(即PersonService,OrdersService)获取数据.

但这些如何data services在奥里利亚建模?一切都只是一个阶级?它看起来像它.

从本质上讲,我会看到一些代码示例,hello-world它们有效地从服务中获取数据,并将其提供给a @customElement.HTTP调用在哪里?我们如何进行HTTP调用?Angular用途$http,Aurelia怎么样?

编辑:

这是一个简单的角度服务.怎么会在奥里利亚攻击这个?

app.service('SomeDataService', function () {
    return {
        getMyData: function (options) {
            return $.ajax(options);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

Jer*_*yow 9

是的ES6/ES7课程.您的数据服务没有框架入侵.

我的数据,service.js

import {HttpClient} from 'aurelia-http-client'; // or 'aurelia-fetch-client' if you want to use fetch
import {inject} from 'aurelia-framework';

@inject(HttpClient)
export class MyDataService {
  constructor(http) {
    this.http = http;
  }

  getMyData() {
    return this.http.get(someUrl);
  }
}
Run Code Online (Sandbox Code Playgroud)

花式定制element.js

import {MyDataService} from './my-data-service';
import {inject} from 'aurelia-framework';

@inject(MyDataService) // aurelia's dependency injection container will inject the same MyDataService instance into each instance of FancyCustomElement
export class FancyCustomElement {
  data = null;

  constructor(dataService) {
    this.dataService = dataService;
  }

  // perhaps a button click is bound to this method:
  loadTheData() {
    this.dataService.getMyData()
      .then(data => this.data = data);
  }
}
Run Code Online (Sandbox Code Playgroud)