Я новичок в Angular 2, но у меня есть хороший опыт работы в Angular 1.x.как реализовать aop в угловой 2
Я получаю сообщение об ошибке: Не удается найти модуль 'aspect.js/расстояние/Библиотека/аспект'
Ниже мой код:
logging.aspect.ts
import {Injectable} from '@angular/core';
import {beforeMethod, Metadata} from 'aspect.js/dist/lib/aspect';
@Injectable()
export class LogAspect {
@beforeMethod({
classNamePattern: /(Matter|Customer)Service/,
methodNamePattern: /^(get)/
})
invokeBeforeMethod(meta: Metadata) {
console.log(`Inside of the logger.
Called ${meta.className}.${meta.method.name}
with args: ${meta.method.args.join(', ')}.`
);
}
}
аспект определяет совет, который применяется ко всем вызовам методов, начиная с get внутри классов, содержащих службу регулярных выражений (Matter | Customer) в их имени. Метаданные доступны для консультаций могут содержать фактические и ме- классовые имена наряду с параметрами метода-вызова
invoice.service.ts
import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';
import {Wove} from 'aspect.js/dist/lib/aspect';
import {Matter} from './Matter.model';
@Injectable()
@Wove()
export class MatterService{
private url: string;
constructor(private http: Http) {
this.url = '/data/matters/data.json';
}
get(): Observable<Matter[]> {
return this.http.get(this.url)
.map(
(response) => <Matter[]>response.json()
);
}
}
И, пожалуйста, предложить какой-либо другой способ реализации АОП в angular2
Вы используете компилятор AOT от Angular 2? AOT ломает сторонние декораторы, которые, я думаю, они пытаются решить. При работе под JIT мои пользовательские декораторы работают отлично. Я понимаю, что декораторы и AOP ортогональны, но поскольку вы используете синтаксис декоратора, просто знайте, что он не хорошо работает с AOT, поскольку AOT стирает декораторы в процессе, называемом опусканием, где они преобразуются в статические метаданные (это, возможно, было частично разрешено) , (приветствуется в AOT: TypeScript с стираемыми декораторами и типами типа «замысловатые и неработающие») –
Возможно, вы можете открыть проблему на https : //github.com/mgechev/aspect.js. Минько Гечев очень вовлечен в Угловое, а также –