Angular 在 Aurelia 服役?
Angular Service in Aurelia?
我还没有找到详细说明如何从 Angular 1.x 迁移到 Aurelia 的合适文档。到目前为止,我只看到人们详细说明了如何使用 @customElement
在 Aurelia 中重新制作 Angular directive
的概念。好吧,很简单。但是这些例子总是,总是只是模拟数据。
也就是说,Angular 服务是可以注入任何 controller/directive/service 的单例,并且通常允许从服务器获取数据(即 PersonService
、OrdersService
).
但是这些 data services
在 Aurelia 中是如何建模的?一切都只是一个 class 吗?它seems like it.
基本上,我会看到一些代码示例,一个 hello-world
,它可以有效地从服务中获取数据,并将其提供给 @customElement
。 HTTP 调用去哪里了?我们如何进行 HTTP 调用? Angular 使用 $http
,Aurelia 呢?
编辑:
这是一个简单的 angular 服务。如何在 Aurelia 攻击这个?
app.service('SomeDataService', function () {
return {
getMyData: function (options) {
return $.ajax(options);
}
}
});
是的- 很简单 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);
}
}
我还没有找到详细说明如何从 Angular 1.x 迁移到 Aurelia 的合适文档。到目前为止,我只看到人们详细说明了如何使用 @customElement
在 Aurelia 中重新制作 Angular directive
的概念。好吧,很简单。但是这些例子总是,总是只是模拟数据。
也就是说,Angular 服务是可以注入任何 controller/directive/service 的单例,并且通常允许从服务器获取数据(即 PersonService
、OrdersService
).
但是这些 data services
在 Aurelia 中是如何建模的?一切都只是一个 class 吗?它seems like it.
基本上,我会看到一些代码示例,一个 hello-world
,它可以有效地从服务中获取数据,并将其提供给 @customElement
。 HTTP 调用去哪里了?我们如何进行 HTTP 调用? Angular 使用 $http
,Aurelia 呢?
编辑:
这是一个简单的 angular 服务。如何在 Aurelia 攻击这个?
app.service('SomeDataService', function () {
return {
getMyData: function (options) {
return $.ajax(options);
}
}
});
是的- 很简单 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);
}
}