2017-12-25 21 views
1

나는이 내가하는 방법이 내 생성자에서 eid: '@'angularjs 컨트롤러에서 변수에 액세스하는 방법은 무엇입니까?

바인딩 : 내가 콘솔에서 볼 (내 응용 프로그램의 특정 페이지를 입력하여)이 코드를 실행

this.$onInit =() => { 
    console.log('eid: ', this.eid) 
} 
console.log("eid in another place: ", this.eid) 

eid in another place: undefined 
eid: 1 

eid 변수를 onInit 함수 외부에 표시하려면 어떻게해야합니까?

+0

당신은 단순히 전역 변수 – IsraGab

+0

을 사용할 수 있습니다.하지만 위와 같은 결과가 나옵니다. 문제는 변수가 초기화되는 시간이라고 생각합니다. – Tomasz

+0

어떤 종류의 자바 스크립트 방언을 사용하고 있습니까? –

답변

0

봅니다 로그에 $ Ctrl 키 특수 변수를 사용하는 :

this.$onInit =() => { 
    console.log('eid: ', this.eid) 
} 
console.log("eid in another place: ", $ctrl.eid); 

내가이 블로그에 "Dissecting @ < & = bindings in AngularJS"매우 helpufull 설립했습니다.

+1

AngularJS V1.6 With Pre-assigning bindings는 향후 제공되지 않을 예정이며 향후 버전에서 제거 될 예정이므로 가능한 한 빨리 응용 프로그램을 마이그레이션하지 않는 것이 좋습니다. 바인딩이 존재하는 것에 의존하는 초기화 로직은 컨트롤러의'$ onInit()'메소드에 넣어 져야한다. 이것은 바인딩이 할당 된 후에 항상 호출되도록 보장된다. 자세한 내용은 [AngularJS 개발자 가이드 - V1.6으로 마이그레이션 - $ compile Service breaking changes] (https://docs.angularjs.org/guide/migration#-compile-)를 참조하십시오. – georgeawg

+0

나는'this.eid'을 가지고 있었고, 나는 단지 내 질문을 바로 잡는다. – Tomasz