2016-06-01 19 views
0

以下は私の2つのクラスです。ログインとアクティビティログインをアクティビティに挿入したいこれは、ログインが既に実行され、パラメータが設定された後に発生します。ファイル2では、login.UserNameは常に定義されず、バインドしようとする他の項目は未定義です。適切な拘束力が欠けていることはありますか?注入依存関係はnullです

//file 1 
import {autoinject} from 'aurelia-framework'; 
import {HttpClient, json} from 'aurelia-fetch-client'; 
import {bindable} from 'aurelia-framework'; 
import 'fetch'; 

@autoinject 
export class Login{ 
    @bindable UserName:String 

    constructor(private http: HttpClient){ 
     ...redacted... 
    } 

    login(){ 
     this.UserName="test"; 
    } 
} 


//file 2 
import {autoinject} from 'aurelia-framework'; 
import {HttpClient, json} from 'aurelia-fetch-client'; 
import 'fetch'; 
import {Login} from 'login/src/login'; 

@autoinject 
export class Activity { 
    Login: Login; 

    constructor(private http: HttpClient, private login: Login) { 
     ...redacted... 
     this.Login=login; 
    }); 
} 

答えて

1

私はActivityクラス/カスタム要素がLoginクラス/カスタム要素の別のインスタンスを注入されていると思います。アイテムには通常、コンテナによって制御される「シングルトン」のライフタイムがありますが、UIコンポーネントでは使用できません。私は@singletonをあなたのLoginコンポーネントに追加することで作業する必要があると思いますが、 UIコンポーネントとActivity UIコンポーネントの両方に注入できる「ユーザー」と呼ばれる別のクラスを作成したほうがよい場合があります。

+0

これはまさに正しいことでした。私は何らかの理由でUIコンポーネントがシングルトンであったにもかかわらず、それは後見では愚かです。私は別のクラスに分かれ、夢のように動作します、ありがとう! –

関連する問題