이 가이드에 따라 레거시 Angular 1.5 앱의 "범위 수프"아키텍처를 제거하는 과정에 있습니다. http://teropa.info/blog/2015/10/18/refactoring-angular-apps-to-components. html # replace-external-reference-with-bound-input
에 대한 참조를 제거하려고 $rootscope.taskui
하므로 구성 요소에 바인딩을 추가하려고했습니다. 불행히도 taskui
지금은 정의되지 않았습니다. "컴포넌트"는 Angular 1.5 컴포넌트입니다 (보통의 일반적인 지시문). 내가 뭔가 잘못하고 있니?
"this.taskui"를 "$ rootscope.taskui"(올바르게 삽입 됨)로 method
바꾸면 taskui 개체가 제대로 인쇄됩니다.
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
다음은 컨트롤러 코드입니다.
class Controller {
constructor() {
this.method = () => console.log(this.taskui)
}
}
문제는 angularjs 범위에 대한 오해였습니다. 격리 된 범위를 사용하는 경우 변수를 바인딩하는 것만으로는 충분하지 않습니다. 또한 값을 속성으로 전달해야합니다. 여기에서 솔루션 # 3 참조 : https://stackoverflow.com/a/17900556/555493
코드 (원래 예제 사용)는 다음과 같아야합니다.
// component
export default {
bindings: {
taskui: '='
},
controller,
templateUrl: "component.html"
};
// parent template
<component taskui="taskui"></component>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다