2015-12-21 131 views
1

我是aurelia初學者,我正在嘗試使用登錄頁面準備一個簡單的應用程序。 但是,當我給予驗證,我無法爲登錄設置root。因爲構造函數不允許有兩個參數。如果有其他方法,請你幫助我嗎?在login.js下面找到我的代碼。aurelia登錄頁面

import {inject,Aurelia} from 'aurelia-framework'; 
import {Validation} from 'aurelia-validation'; 
import {ensure} from 'aurelia-validation'; 
@inject(Aurelia) 
export class Login{ 
    static inject() { return [Validation]; } 
    heading='Login to Aurelia' 
    constructor(Aurelia,validation) 
    { 
     this.aurelia=Aurelia; 
     this.email='raja'; 
     this.password='12345'; 
     this.validation = validation.on(this) 
      .ensure('email') 
        .isNotEmpty() 
        .hasMinLength(3) 
        .hasMaxLength(10) 
      .ensure('password') 
        .isNotEmpty() 
        .hasMinLength(3) 
        .hasMaxLength(10) ; 
    } 
    Submit() 
    { 
     this.validation.validate() 
    .then(() => { 

     if(this.email=='raja'&&this.password=='12345') 
     { 
     this.aurelia.setRoot(); 
    } 
else 
{ 
      alert(`Invalid Credentials`); 
} 
}); 
} 
} 

回答

2

請勿混合@injectstatic inject...

更改此:

import {inject,Aurelia} from 'aurelia-framework'; 
import {Validation} from 'aurelia-validation'; 
import {ensure} from 'aurelia-validation'; 
@inject(Aurelia) 
export class Login{ 
    static inject() { return [Validation]; } 
    heading='Login to Aurelia' 
    constructor(Aurelia,validation) 
    { 
     ... 
    } 
    ... 
} 

要這樣:

import {inject,Aurelia} from 'aurelia-framework'; 
import {Validation} from 'aurelia-validation'; 
import {ensure} from 'aurelia-validation'; 
@inject(Aurelia, Validation) 
export class Login{ 
    heading='Login to Aurelia' 
    constructor(aurelia, validation) { 
     ... 
    } 
    ... 
} 
+0

試過了太多,但仍無法導航。任何方式感謝您的答覆 – Raja

+0

你試圖導航到什麼模塊?如果是'app.js',請嘗試'setRoot('app');'控制檯中的任何錯誤? –

+1

哦,它的工作。謝謝你的幫助 – Raja