我还没有找到详细介绍如何从Angular 1.x迁移到Aurelia的文档。到目前为止,我只看到人们详细介绍了如何使用directive
在Aurelia中重建Angular @customElement
的概念。好的,很简单。但这些例子总是只是模拟数据。
也就是说,Angular Services是可以注入任何控制器/指令/服务的单例,通常允许从服务器获取数据(即PersonService
,OrdersService
)。
但是这些data services
如何在奥里利亚建模?一切都只是一个阶级?它seems like it。
基本上,我会看到一些代码示例hello-world
,它可以有效地从服务中获取数据,并将其提供给@customElement
。 HTTP调用在哪里?我们如何进行HTTP调用? Angular使用$http
,Aurelia怎么样?
编辑:
这是一个简单的角度服务。怎么会在奥里利亚攻击这个?
app.service('SomeDataService', function () {
return {
getMyData: function (options) {
return $.ajax(options);
}
}
});
答案 0 :(得分:9)
Yep-plain 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);
}
}
<强>花式定制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);
}
}