2017-09-01 123 views
0

我使用generator-angular-fullstack來創建一個Angular 1.6應用程序,我無法在UI路由器中獲得我的解決方案的價值。generator-angular-fullstack和UI路由器解析

我試圖用這樣的:

路線:

$stateProvider.state('main', { 
    url: '/', 
    template: '<main></main>', 
    resolve: { 
    test: function() { return 'test' } 
    } 
}); 

控制器

constructor($state, socket, localStorageService, test) { 
} 

這導致unknow provider錯誤。

而且這樣:

路線:

$stateProvider.state('main', { 
    url: '/', 
    template: '<main test="$resolve.test"></main>', 
    resolve: { 
    test: function() { 
     return 'test' 
    } 
    } 
}); 

組件:

component('main', { 
    template: require('./main.pug'), 
    bindings: { 
    test: '=' 
    }, 
    controller: MainController 
}) 

控制器:

constructor($state, socket, localStorageService) { 
    console.log(this.test) 
} 

和this.test值始終Undefined,沒有母校我做什麼。

我錯過了什麼?它似乎適用於每個人。

回答

0

我發現了這個問題。如果任何人有同樣的問題,這是因爲第二種方法在Angular 1.5中工作,但在Angular 1.6中,您必須在$ onInit方法中訪問已解析的變量,而不是直接在構造函數中訪問已解析的變量。

這裏是一個正常工作的更新:

constructor($state, socket, localStorageService) { 
} 

$onInit() { 
    console.log(this.test) 
}