2016-09-27 4 views

답변

0

당신이 당신의 질문을 참조 "공유"코드는 라이프 사이클 관련 정말 공유에 적합하지 않는 사용자 정의 요소에 물건을. 당신은 상속을해야 할 것이고, 많은 두통을 겪고있는 커스텀 요소를 가지고해야 할 것입니다.

코드를 공유하는 대신 가변적 인 사항에 초점을 맞추고 구성 가능한 것으로 만드십시오. 당신의 요지를 보아서, 그것은 지금까지 가장 간단한 해결책 인 것 같습니다.

속성이 변경 될 때 함수를 호출하는 사용자 지정 요소가 있다고합시다. 이 함수는 요소의 일부 인스턴스에 대해 달라야합니다. 당신은 너무처럼 바인딩 기능이 작업을 수행하고 .call 동작을 사용할 수 있습니다

일부-element.js

import { bindable } from 'aurelia-framework'; 

export class SomeElement { 

    @bindable value; 
    @bindable processValue; 

    valueChanged(newValue, oldValue) { 
     if (this.processValue) { 
      this.processValue({ val: newValue }); 
     } 
    } 
} 

consumer.html

<some-element value.bind="myValue" process-value.call="myFunc(val)"></some-element> 
<some-element value.bind="anotherValue" process-value.call="anotherFunc(val)"></some-element> 

consumer.js

myFunc(val) { 
    console.log("val: " + val); 
} 

anotherFunc(val) { 
    console.log("val: " + val); 
} 
+0

나쁜 접근 방식을 택한 것 같습니다. 대단한 배려 !!! 고마워요! – Lumdeia