2016-08-18 4 views
0

저는 ES6 및 AngularJS에서 새롭고 상태 공급자 (또는 이와 관련된 것)에 문제가 있습니다. 내가 발견 GitHub의의의 repo에 소개 된 프로젝트 구조 다음 응용 프로그램을 구축을 위해 노력하고있다 : 나는 $stateProvider 상태로 내 구성 요소를 할당하려고 할 때

https://github.com/AngularClass/NG6-starter

문제가 발생합니다.

가 작동하지 않는 코드 :

import angular from 'angular'; 
import uiRouter from 'angular-ui-router'; 
import homepageComponent from './homepage.component'; 

const moduleName = 'app.components.homepage'; 

let homepageModule = angular.module(moduleName, [ 
    uiRouter 
]) 
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { 
    'ngInject'; 

    $stateProvider 
    .state('homepage', { 
     url: '/', 
     component: 'homepage' 
    }); 

    $urlRouterProvider.otherwise('/'); 
}]) 
.component('homepage', homepageComponent) 
.name; 

export default homepageModule; 

내가 응용 프로그램 문제 뭔가가 있다고 가정 할 수 있지만 기본 과제와이 "구성 요소 일을"교체 할 때 그냥 잘 작동합니다. 실제로 작동

코드 : 나는 <homepage></homepage> 태그를 삽입 할 때, 그냥 일하고

import template from './homepage.html'; 
import controller from './homepage.controller'; 
import './homepage.scss'; 

let homepageComponent = { 
    restrict: 'E', 
    bindings: {}, 
    template, 
    controller 
}; 

export default homepageComponent; 

: 여기

import angular from 'angular'; 
import uiRouter from 'angular-ui-router'; 
import template from './homepage.html'; 
import controller from './homepage.controller'; 

const moduleName = 'app.components.homepage'; 

let homepageModule = angular.module(moduleName, [ 
    uiRouter 
]) 
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) { 
    'ngInject'; 

    $stateProvider 
    .state('homepage', { 
     url: '/', 
     restrict: 'E', 
     bindings: {}, 
     template: template, 
     controller: controller, 
     controllerAs: '$ctrl' 
    }); 

    $urlRouterProvider.otherwise('/'); 
}]) 
.name; 

export default homepageModule; 

을 그리고는 homepage.component.js 코드입니다. 아무도이 두 가지 방법의 차이점을 말해 주시겠습니까? 내가 뭘 잘못하고 있습니까?

BTW. 누구도 파일의 끝에 (repo에서)이 .name이있는 이유를 알고 있습니까?

답변

1

이와 같은 구성 요소를 추가 할 수 없습니다. 상태는 템플릿에 연결됩니다. 이 기능은 다음 버전 (1.0.0)

CF에 추가 할 : .name 속성을 사용 https://github.com/angular-ui/ui-router/issues/2547

문자열을 중복 방지 할 수 있습니다. 당신은 당신의 구성 요소를 호출 할 수 있습니다 homepage.name

+1

예, 그들은 "angle-ui-router"를 사용합니다 : "^ 1.0.0-beta.1",'. 당신은 그들의 package.json – DMCISSOKHO

+0

에서 이것을 체크 할 수있다. 나는 이것을 위해 나의 라이브를 ~ 3 시간 낭비했다. 고마워요. –

+0

오신 것을 환영합니다. ^^ 연구 시간은 절대로 낭비되지 않습니다. – DMCISSOKHO

관련 문제