2013-08-22 6 views
0

Можно ли вводить метод с использованием основы петрушки в приложении flex?Метод инъекции в петрушке

Я могу впрыснуть сам класс, но возможно ли вводить метод.

+1

Так как вы можете вводить как классы и простые свойства, я не понимаю, почему вы не смогли бы придать 'Function' ссылку. – RIAstar

+1

Обратите внимание, что это именно то, что Parsley делает с метаданными '[MessageDispatcher]'. Как вы можете сделать это с каким-либо другим методом, вероятно, похоронили в документации Parsley. Вы можете указать, какую версию Parsley вы используете, а может быть, кто-то более просвещенный, чем я, может вам помочь. –

+1

В дальнейшем обзоре вы можете использовать «инъекцию свойств», где рассматриваемое свойство является «Функция». Однако вы не можете вводить это свойство по типу, вам придется вводить его с помощью идентификатора. Путь «вводить по типу» не будет работать, потому что все функции имеют тип 'Function', и нет никакой возможности для Parsley знать, какую функцию он должен вводить в свойство. –

ответ

0

можно разместить [впрыснуть] метаданных метки на любое количество способов:

package com.bookstore.actions 
{ 

class LoginAction 
    { 
    private var service:LoginService; 
    private var manager:UserManager; 

    [Inject] 
    public function init (service:LoginService, manager:UserManager = null) : void   
     { 
     this.service = service; 
     this.manager = manager;  
     } 

    } 
} 

Как Конструктор инъекций Петрушка распознает, является ли дополнительный параметр метода или нет, и, соответственно, рассматривать зависимость как необязательные или обязательный. Объект, который нужно ввести, будет выбран по типу, поэтому вы должны включить в свою конфигурацию не более одного объекта с соответствующим типом. Для метода Injection нет ограничений на конфигурацию MXML, поэтому, в отличие от Constructor Injection, вы также можете использовать простые теги MXML для добавления объектов в контейнер.

Ссылки

Parsley Manual: Method Injection