2013-08-12 29 views
8

Hãy nói rằng tôi có một cái gì đó như:Thêm thuộc tính đến yếu tố đầu vào trong tay lái (sử dụng với Ember.JS 1.0)

{{input value=someModel }} 

Và sau đó tôi muốn thêm đơn giản required HTML 5 thuộc tính đến đầu vào.

Tôi làm như thế nào?


Lưu ý rằng tôi đã thử các biến thể sau đây mà không thành công:

{{input value=someModel required }} <!-- doesn't parse --> 

{{input value=someModel required='required' }} <!-- doesn't render the attribute --> 

{{view Ember.TextField valueBinding=someModel 
    required='required' }} <!-- doesn't render the attribute --> 

<input required {{bindAttr value=someModel}} 
    /> <!-- doesn't update the model, as expected --> 

Cập nhật: Câu hỏi này là dành cho Ember 1.0.

Trả lời

5

Để toàn cầu hỗ trợ thêm cho các thuộc tính bổ sung mà bạn có thể mở lại Ember.TextField

http://emberjs.com/api/classes/Ember.TextField.html

+3

Đây là khủng khiếp! (đó không phải là lỗi của bạn, cảm ơn vì chỉ vào nó) - Bất kỳ ý tưởng tại sao nó như thế? và liệu có cách nào để mở nó cho những gì tôi thêm vào không? – Meligy

+0

Không phải tất cả các trình duyệt đều hỗ trợ 'required', vì vậy khung công tác với một bộ tối thiểu, cho phép các nhà phát triển thêm các thuộc tính bổ sung nếu họ biết họ sẽ chỉ nhắm mục tiêu các trình duyệt hỗ trợ nó. –

+2

Đây có thể là chủ đề cho Discourse, nhưng thực sự, tôi chỉ nghĩ rằng không có điểm/lợi ích nào trong việc giới hạn những gì người dùng có thể thực hiện với đánh dấu của họ (miễn là mã không phải là mã, ví dụ: không phải biểu thức Handlebars). Tôi đoán đây là một tác dụng phụ của một số hạn chế thiết kế trong thư viện, nếu nó có nghĩa là để được theo cách này như là một tính năng, đó sẽ là gì, nhưng thêm ma sát IMHO. – Meligy

5

Trước tiên, bạn cần thêm hỗ trợ cho các thuộc tính cần thiết:

Ember.TextSupport.reopen({ 
    attributeBindings: ["required"] 
}) 

Sau đó, trong chế độ xem của bạn:

{{view Ember.TextField required="required"}} 
8

Tôi đang sử dụng phiên bản Ember 1.5.1 và bắt buộc = "bắt buộc" có vẻ hoạt động tốt ngay bây giờ. đánh dấu này:

{{input class="form-control" value=firstName autofocus="autofocus" required="required"}} 

... làm cho này:

<input id="ember392" class="ember-view ember-text-field form-control" autofocus="autofocus" required="required" type="text"> 
+0

Cảm ơn, điều này đã làm việc cho tôi trên Ember 2.7 – rmcsharry

Các vấn đề liên quan