2016-06-10 1 views
1

В Aurelia.js, я вижу различия в примерах того, как люди вводят зависимости, но не нашли ясного ответа на вопрос о том, когда явным образом включать в аннотацию добавления или использовать ее как есть.Когда нужно вводить зависимость или использовать как есть в Aurelia?

Например:

import {inject} from 'aurelia-framework'; 
import {X} from 'X'; 
@inject(X) 
export class Y { 
    constructor(X) { 
     this.x = X; 
    } 
} 

или

import {X} from 'X'; 
export class Y { 
    constructor() { 
     this.ABC = someMethod(X); // using X without inject 
    } 
} 

Почему бы кто-то выбрать один над другим?

+0

если мой ответ был полезным, пожалуйста, upvote и принимаю :) –

ответ

2

Когда вы import X from 'X';, если X - это класс, не являющийся экземпляром класса, вы должны использовать Injection Dependency, чтобы Aurelia предоставила вам экземпляр класса.

Иногда модуль экспортирует функцию (и) экспортирует экземпляр объекта. В этих случаях вы не должны использовать DI.

+0

Это правильный ответ. –

4

Зависимость инъекции на самом деле является design pattern, что Aurelia полностью охватывает. Хотя вы не вынуждены принять этот шаблон, это лучшая практика, поскольку большинство исходных текстов Aurelia, с которыми вы сталкиваетесь, будут следовать этому шаблону. Основной член команды Jeremy Danyow написал блестящую статью на эту тему в двух частях, которые я приведу ниже.

Инверсия управления с Aurelia Джереми Danyow: Part 1, Part 2

+0

, если этот ответ был полезен, user2874945, пожалуйста, поддержите и примите, и я буду так счастлив –

Смежные вопросы