2016-12-08 3 views
2

이상한 오류가있는 것 같습니다. 여기에 잘못된 가정이 맞는지 확실하지 않지만 주제에 대한 문서가 없습니다.aurelia는 사용자 정의 바인딩 동작 클래스를 싱글 톤으로 사용합니까?

사용자 정의 요소/속성을 만들고 해당 클래스의 멤버를 설정하면 해당 클래스가 사용되는 것이므로 이러한 custom attr/요소를 사용할 때마다 함께 사용하는 클래스 인스턴스가 생성됩니다.

그러나 현재 바인딩 동작을 사용할 때 클래스는 해당 바인딩 동작의 모든 사용간에 공유되며 bind 메서드는 격리 지점으로 간주됩니다.

사용마다 인스턴스가되도록 설정되었다고 가정하고이 경우 일부 비동기 논리가 클래스에서 마지막으로 사용 된 바인딩 동작 (예 : this.someClassStateVar)의 값을 얻고 있기 때문에 이것을 말합니다.

Aurelia가 싱글 톤 범위에서 바인딩 동작을 사용하는 경우 누구도 확인할 수 있습니까? 첫 번째 대답에 근거하여

=== 편집 ===

나는 시나리오를 확인하고 싶었 :

<section with-binding.bind="something"> 
    <input value.bind="somethingElse & someBindingBehaviour"> 
    <input value.bind="somethingElse2 & someBindingBehaviour"> 
</section> 

그래서 내가 someBindingBehaviour 클래스의 두 인스턴스가 될 것이라고 기대하고 있었다를 각각 적용 할 것 관련 입력,하지만 내가 볼 행동을 그들은 둘 다 someBindingBehaviour 클래스의 동일한 인스턴스를 사용하는 것입니다.

답변

4

아우렐 리아에서 값 변환기와 바인딩 동작은 싱글 톤입니다. 그들은 무국적자 여야합니다. 일부 유형의 바인딩 동작은 일부 상태를 추적해야 할 수 있습니다. 해당 상태를 저장하는 가장 좋은 장소는 바인딩 인스턴스 (바인딩 동작의 bindunbind 메소드로 전달됨)에 있습니다.

+0

이것은 괜찮 았지만 실제로 문서를 넣는 것으로 끝낼 수있었습니다. 왜냐하면 무국적이 아닌 사용자 지정 요소와 특성에 대해 다르게 행동 한 이유에 대해 당황 스러웠습니다. – Grofit