Angular2-Meteorを使用して簡単なログイン画面を設計しています。ログインAPI呼び出しが成功すると、ユーザーを/ dashboardにリダイレクトします。Meter.call()メソッドでAngular 2 routerにアクセスする方法
import {Component} from '@angular/core';
import {MeteorComponent} from 'angular2-meteor';
import {LocalStorageService} from '../services/localstorage.service'
import {Router} from '@angular/router-deprecated';
import {LoggerService} from "../services/loggerService";
'use strict';
@Component({
selector: 'login',
templateUrl: 'client/login/login.html',
bindings: [LoggerService]
})
export class LoginComponent extends MeteorComponent {
public loginData = {
username: '',
password: ''
};
constructor(private _logger:LoggerService, public router:Router) {
super();
}
login() {
this._logger.log('Login attempted ', this.loginData);
this.call('authenticateUser', this.loginData.username, this.loginData.password , function (err, data) {
if (err) {
this._logger.error(err);
} else {
console.info(JSON.parse(data));
console.log(this.router);
this.router.navigate(['Dashboard'])
}
});
}
}
Meteor.call()
でルータにアクセスできません。 私はself = this
を実行してへの参照をthis
に渡そうとしましたが、self
としてWindow
が必要です。
誰か助けてもらえますか? ありがとうございます。