2016-08-26 2 views
1

zunächst das ist mein devDependenciesWissen verwenden, die Syntax mit AngularJS

"angular": "^1.5.0", 
    "angular-ui-router": "^1.0.0-beta.1", 

ich mit AngularJS Version entwickeln will, die Komponente und Controller als Klasse verwenden und für das Routing Ich weiß nicht, welche Syntax

I zu verwenden muss meine Abhängigkeiten wissen ist, mit wich Syntax espacially kompatibel für das Routing, wenn jemand einen exmaple geben Sie mir für das Routing kann

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' 
     }); 
    }) 

aber ich habe Fehler, wenn ich versuchte, $ State.go ('Heimat') in meinem Controller verwenden Dank für

helfen

UPDATE

LoginController

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

export default LoginController; 

login.js

import LoginComponent from './login.component' 
import angular from 'angular'; 
import uiRouter from 'angular-ui-router'; 

angular.module('login',[ 
    uiRouter 

]) 
    .config(($stateProvider, $urlRouterProvider)=> { 
    "ngInject"; 
    }) 
.component('login',LoginComponent); 

nach $ Hinzufügen Bereich und $ -Zustand im Konstruktor

enter image description here

+0

zeigen uns Code des Controllers. Was ist der Inhalt Ihres Fehlers auch? – Emidomh

+0

http://stackoverflow.com/questions/39148086/state-go-not-working-with-angularjs-1-5 –

+0

Sie injizieren $ State in Ihrem Controller? – Eric

Antwort

0

Das Problem kommt von Ihrem Controller. Versuchen Sie folgendes:

LoginController:

'use strict'; 
(function(){ 

class LoginController { 
    constructor($state) { 

this.openHome = function(){ 
    console.log("uo"); 
    $state.go('home'); 
    } 

} 

angular.module('app') 
    .component('login', { 
    templateUrl: 'your/location/toMyFile.html', 
    controller: LoginComponent 
    }); 

})(); 

Hoffe, es hilft;)

+0

Ich hörte, dass $ Scope nicht mehr in der neuesten Version verwendet wird? –

Verwandte Themen