2013-05-25 2 views
2

우리는 다음과 같은 예를 찾을 수 있습니다 안내 : 뷰에 전달 된 변수의보기에서 바인딩 접미사가 있거나없는 접미사 변수 - 차이점은 무엇입니까? 엠버에서

{{view Ember.Select viewName="select" contentBinding="App.peopleController" optionLabelPath="model.fullName" optionValuePath="model.id" prompt="Pick a person:" selectionBinding="App.selectedPersonController.person"}} 

하나가 PeopleController에 바인딩하지만 optionValuePath 같은 나머지는 응용 프로그램의 다른 부분에 연결되어 있습니다.

때로는 어떤 것을 사용해야하는지 모를 때 약간 혼란 스럽습니다. 그러나 그들 모두는 전망 안에서 접근 가능할 것이다.

단방향 바인딩 인 optionLabelPath ('없음 - 바인딩'없음) 또는 값으로 한 번만 전달됩니다.

다른 점은 무엇입니까?

답변

2

뷰 도우미를 사용하여 핸들 막대에서 뷰의 인스턴스를 만들면 name = value 쌍의 모든 (ok, most)이 뷰의 create 메서드에 전달됩니다. 그래서 :

{{view Ember.Select viewName="select" contentBinding="App.peopleController" optionLabelPath="model.fullName" optionValuePath="model.id" prompt="Pick a person:" selectionBinding="App.selectedPersonController.person"}} 

view = Ember.Select.create({ 
    contentBinding="App.peopleController" 
    optionLabelPath="model.fullName" 
    optionValuePath="model.id" 
    prompt="Pick a person:" 
    selectionBinding="App.selectedPersonController.person" 
}) 

그래서 두 개의 속성, contentselection된다 가의 엠버의 "자동 생성 앱 덕분에 다른 부분에을 결합왔다 바인딩/^ * Binding/-NAMED PROPERTIES "기능 - Ember Binding API docs 참조.

단방향 바인딩 인 optionLabelPath (''-Binding '없음) 또는 단 한번만 값을 전달합니까?

다른 3 가지 (없음 - 바인딩) 속성에는 특별한 것이 없습니다. 각각은 간단한 문자열로 설정되었습니다. Ember.Select은 콘텐츠 배열 (App.peopleController)을 반복하고 optionLabelPath을 사용하여 배열의 각 항목에서 레이블을 조회합니다. 그리고 optionValuePath은 값을 검색하는 데 사용됩니다.

다른 점은 무엇입니까?

따라서 Binding으로 끝나는 항목은 다른 개체의 경로를 예상하고 있습니다. 다른 모든 것은 문자열로 전달됩니다. Ember.Select는 특별한 방법으로 두 개의 Path 속성을 사용하지만, 이름 지정 규칙 일뿐입니다.

+0

대단히 감사합니다. 마이크! create()를 사용한 예제는 많은 도움이되었습니다! 하나 더 질문. 모든 ArrayController는 주어진 템플릿의 컨텍스트가되는'content' 배열을 가지고 있습니다. 그래서 예제 템플릿에서 {{fullName}}을 쓸 수 있습니다. 'model'. fulllName'을 'content' 배열에서 찾을 수있는 유일한 방법으로 언급하고 있습니까? – wryrych

+0

내가 잘 모르겠다. arrayController의'content' 배열은 전형적으로 템플릿을위한 문맥이 아니기 때문에 컨트롤러 자체가 있습니다. '{{#each this}} {{fullName}} {{/ each}}'와 같은 일을하면 arrayController의'content' 배열의 모든 요소에 대해 블록이 렌더링됩니다. arrayController의 content 속성에서 요소를 참조하기 위해'model.fullname'을 사용하는 어떤 상황도 생각할 수 없습니다. –

관련 문제