2013-09-07 56 views
22

Liệu có cách nào để nhập văn bản nàyhành động trên nhập vào ember

<input type="text" aria-controls="existing-user-table" placeholder="Search"> 

để kích hoạt một hành động trên bộ điều khiển khi người dùng chạm vào?

Tôi không muốn đính kèm nó trong thẻ biểu mẫu hoặc tạo nút, chỉ là trường nhập văn bản đó.

+0

như âm thanh của câu hỏi này – engma

Trả lời

29

Sử dụng trình trợ giúp {{input}} - nếu bạn bao gồm thông số hành động, nó sẽ kích hoạt hành động đó trên bộ điều khiển khi người dùng truy cập vào. Vì vậy:

{{input action="myAction" aria-controls="existing-user-table" placeholder="Search"}} 

Các input helper api docs không đề cập đến khả năng này, nhưng helper chỉ kết thúc tốt đẹp Ember.TextField

Ngoài ra nó có thể kích hoạt các hành động trên keyPress thay vì nhập bằng cách xác định onEvent property:

{{input action="myAction" onEvent="keypress" aria-controls="existing-user-table" placeholder="Search"}} 
+4

Điều đó phải là 'on =" keyPress "'. –

+1

Tôi đã sử dụng {{input key-press = "someAction"}} [được ghi lại một phần tại đây] (http://emberjs.com/api/classes/Ember.TextSupport.html) - mặc dù tiếc là nó không vượt qua phím được nhấn thực tế trong sự kiện. – TrevTheDev

+0

Trong trường hợp của tôi, thiết lập hành động không bẫy chìa khóa trả về trong ember-1.8.0-beta.1 – aceofspades

25

Trình trợ giúp đầu vào có tác vụ insert-newline sẽ kích hoạt khi người dùng nhấn phím enter.

{{input type='text' aria-controls='existing-user-table' placeholder='Search' insert-newline='myAction'}} 

Text Input Helpers

Insert Newline docs

+3

Điều này phải được chấp nhận câu trả lời. Nếu bạn sử dụng '' 'action''' như đã đề xuất trước đó, bạn không thể lấy mã khóa vì bạn không có quyền truy cập vào sự kiện ban đầu. Cảm ơn bạn đã cứu người bạn đời của mình! – Lucas

+0

cách chuyển tham số sang 'myAction'? –

13

Từ Ember v1.13.0 hành động trên helper đầu vào được depricated chúng ta nên sử dụng sử dụng enter hoặc key-press thay vì action

Tham khảo Ember Docs

{{input value=someValue enter='someAction'}} 

điều này sẽ kích hoạt hành động được đề cập khi người dùng nhấn enter trên nhập văn bản