2016-08-25 3 views
0

で作業していないstate.goすると、これは私のapp.jsで

私app.jsあるangularjs私は2つのchlidrenログインおよびホーム府のデフォルトを持っている私はloginComponent 持っており、その後、私はボタンのログインをクリックしたとき、私はホームビュー

でログインビューを交換し、私はエラー$状態が

import AppComponent from './app.component'; 
    import LoginComponent from './login/login.component'; 
    import HomeComponent from './home/home.component'; 

    import angular from 'angular'; 
import uiRouter from 'angular-ui-router'; 

angular.module('app', [ 
    uiRouter 
]) 
    .config(($stateProvider, $urlRouterProvider)=> { 
    "ngInject"; 
    $urlRouterProvider.otherwise('/'); 
    $stateProvider 
     .state('login', { 
     url: '/', 
     component: 'login' 
     }); 
    $stateProvider 
     .state('home', { 
     url: '/home', 
     component: 'home' 
     }); 
    }) 
    .component('app', AppComponent) 
    .component('home', HomeComponent) 
    .component('login', LoginComponent); 

が定義されていないしている、これは私のlogin.controller

です210
class LoginController { 
    constructor() { 
    this.name = 'login'; 
    console.log('login controller'); 
    } 
    openHome(){ 
    console.log("uo"); 
    $state.go('home'); 
    } 
} 

export default LoginController; 

enter image description here

enter image description here

+1

のようなものを使用することができますか? –

+0

私はそれをインポートする必要がありますか? –

+0

使用したい場合は、注入する必要があります。私はES6の構文を使ったことはありませんでした。これはあなたが調べなければならないものです –

答えて

3

コメントで述べたように、あなたはLoginController$stateを注入する必要があります。

class LoginController { 
    constructor($state) { 
    this.name = 'login'; 
    this.$state = $state; 
    console.log('login controller'); 
    } 
    openHome(){ 
    console.log("uo"); 
    this.$state.go('home'); 
    } 
} 

LoginController.$inject = ['$state']; 

export default LoginController; 

それとも、私は必ずここに100%ではないんだけど、あなたはあなたのクラスに$状態依存性を渡す必要はありませんng-annotate

+0

それは完全にあなたに非常に感謝します –

関連する問題