2014-05-16 21 views
2

在應用程序配置文件我有一個信號/命令映射信號也決不會被注入 - robotlegs2.0

signalCommandMap.map(DisconnectUserSignal).toCommand(DisconnectUserCommand); 

然後, 我有兩個連接類:

public class BaseConnection implements IBaseConnection 
{ 
    // When I am trying to inject the signal here: 
    [Inject] public var disconnectUserSignal:DisconnectUserSignal; // it is always null 

    _netConnection = new NetConnection(); 
    ... 
} 

public class BBConnection extends DefaultConnectionCallback implements IBBConnection 
{ 
    // When I am trying to inject the signal here: 
    [Inject] public var disconnectUserSignal:DisconnectUserSignal; // it works perfectly fine 

    _baseConnection = new BaseConnection(this); 
} 

有什麼建議可能是什麼原因? 謝謝

+0

您是否在注射器中映射了信號本身?像_injector.map(DisconnectUserSignal).asSingleton(); _ – fsbmain

+0

我沒有,但現在會做,讓你知道結果。 – inside

+0

nope ... still null! – inside

回答

0

通過Robotlegs的框架文件會後 - 我找到了答案:

我改變了_baseConnection是一個接口,以及移動一切從BaseConnection的構造到init方法,現在我注入這裏面我BBConnection。

這裏BBConnection現在的樣子:

[Inject] 
public var baseConnection:IBaseConnection; 

public function BBConnection() 
{ 
} 

[PostConstruct] 
public function init():void 
{ 
    baseConnection.init(this); 
} 

現在我可以成功注入底座連接斷開內部信號。

來源:https://github.com/robotlegs/robotlegs-framework/wiki/common-problems#injected-properties-are-null-in-constructor