2012-03-27 2 views
3

긴 날이었고 이것은 아마도 매우 단순하지만 Ember.TextField에 이름 속성을 추가하는 방법은 무엇입니까?Ember.TextField에 이름 속성을 추가 하시겠습니까?

나는 이런 식으로 뭔가를 할 :

{view Ember.TextField valueBinding="your_name" placeholder="Your name" name="your_name"}} 

이 자리 표시 자와 함께 작동하지만 이름을 무시합니다.

어떤 아이디어 ??

감사 릭

답변

8

이름 속성은 기본적으로 구속되지 않으며, see

해결 방법으로, 당신은 당신의 자신의 TextField를 참조 만들 수 http://jsfiddle.net/fkPzr/

App.TextField = Ember.TextField.extend({ 
    init: function() { 
     this._super(); 
     // get attributeBindings and add 'name' 
     var attributeBindings = this.get('attributeBindings'); 
     attributeBindings.pushObject('name'); 
     this.set('attributeBindings', attributeBindings); 
    } 
}); 

업데이트 :

연접 속성은 확장 된 오브젝트의 속성을 대체하지 않는다 *

App.TextField = Ember.TextField.extend({ 
    attributeBindings: ['name'] 
}); 

을하지만 슈퍼 개체에서 기존 값이 연접되어 attributeBindings 이후 6,

는 텍스트 필드가 단순화 될 수있다 *는 concatenated property로 선언된다 http://jsfiddle.net/cRhcg/ 참조 . 말이된다? 여기에있다. example

+0

감사합니다. 많은 pangratz. 써리 (Surley) 테스트를 위해 이름이 필요하기 때문에 이것이 기본값이어야합니까? –

+0

감사합니다 pangratz! 나는 같은 질문을했다! +1 – Dragan

2

Ember.TextField가 속성 바인딩을 노출하지 않기 때문에 작동하지 않는다. Ember.TextField

attributeBindings: ['type', 'value', 'size'], 

플러스 믹스 인에서 사람에서

:

attributeBindings: ['placeholder', 'disabled', 'maxlength'], 

는 이름 속성을 결합하려면, 속성 바인딩에 '이름'을 추가하는 독자적인 서브 클래스를 만들

+0

죄송합니다. @pangratz가 빠릅니다 :) –

-1

간단하게 name 속성을 지정하는 옵션을 원하면 attributeBindings를 사용하여 지정할 수 있습니다.

{view Ember.TextField valueBinding="your_name" placeholder="Your name" attributeBindings="name" name="your_name"}} 
+0

Handlebars를 통해 attributeBindings를 설정할 수 없습니다. https://github.com/emberjs/ember.js/blob/c524f3e91d3c3dfa0b9a95d0c8fbf4dc199b4ac3/packages/ember-handlebars/lib/helpers를 참조하십시오. /view.js#L44-48 – pangratz

0

이렇게하면 문제가 해결됩니다. 그러나 나는 이것을하지 않을 것을 제안합니다. ember의 배경은 DOM과 같은 정보를 DOM 밖으로 유지하는 것입니다.

Ember.TextField.reopen({ 
    attributeBindings: ['name'] 
}); 
관련 문제