2015-09-30 15 views
5

Tôi hiện đang tìm hiểu về mô hình mới, dữ liệu hành động của Ember cho các thành phần. Tuy nhiên, như đã thảo luận here, đôi khi tôi muốn cho phép thành phần con sửa đổi thuộc tính một cách rõ ràng. Đây là nơi trợ giúp mut trợ giúp: nó tạo ra một trình bao bọc cho giá trị được truyền, chứa giá trị (chỉ đọc?) Và một hàm để cập nhật nó. Ví dụ trên trang đó là cho một nút đơn giản tăng bộ đếm.Thực hành tốt nhất cho trình trợ giúp đầu vào trong các thành phần Ember mới

Khái niệm này hoạt động như thế nào nếu tôi đang sử dụng trình trợ giúp đầu vào bên trong một thành phần? Ví dụ, giả sử tôi là xây dựng một hình thức trong đó bao gồm một loạt các thành phần hình thức đặc biệt:

// templates/index.hbs 
<form> 
    {{form-control value=(mut model.firstValue)}} 
    {{form-control value=(mut model.secondValue)}} 
</form> 

Nếu thành phần hình thức kiểm soát chỉ có nhiệm vụ gói kiểm soát đầu vào, làm thế nào để chúng tôi sử dụng đối tượng ngắt được thông qua chính xác? Nó giống như thế?

// templates/components/form-control.hbs 
{{input type="text" value=attrs.value.value input=attrs.value.update}} 

suy nghĩ của tôi ở đây: giá trị của các yếu tố đầu vào được thiết lập để giá trị của mứt đối tượng, và bất cứ khi nào thay đổi giá trị đầu vào (HTML5 kiện đầu vào) phương pháp cập nhật của mứt đối tượng là được gọi để đặt thuộc tính mô hình thành giá trị mới. Có vẻ như có điều gì đó sai trái với suy nghĩ của tôi, bởi vì điều này không hiệu quả. Cách "tiêu chuẩn" là làm điều này ngay bây giờ là gì? Tôi đang sử dụng Ember 1.13.8.

+2

Dưới đây là một tốt [bài viết] (http://emberup.co/bindings-with-htmlbars-helpers/?utm_source=Ember+Weekly&utm_campaign=d59b972512-Ember_Weekly_Issue_125&utm_medium=email&utm_term=0_e96229d21d-d59b972512-106355381) nói về có thể thay đổi và chỉ đọc những người trợ giúp. Hy vọng rằng sẽ giúp đỡ –

+0

Cảm ơn Tyler, thực sự đánh giá cao nó. Thật không may là nó đã không giúp tôi nhiều lắm. Nó cho thấy chế độ xem từ người tiêu dùng, tức là cách tạo phiên bản giá trị chỉ đọc và hành động để cập nhật, cả hai đều được chuyển đến thành phần. Trừ khi tôi hiểu sai một cái gì đó, đây là những gì người trợ giúp mut cũng vậy (tức là nó tạo ra một phiên bản chỉ đọc của giá trị và một hành động để cập nhật nó). Nơi tôi bị lạc là ở bên thành phần khi tôi muốn sử dụng hai thành phần đó trong một trình trợ giúp đầu vào ... làm cách nào để ràng buộc giá trị chỉ đọc vào đầu vào và gọi phương thức cập nhật khi đầu vào thay đổi? – sammy34

Trả lời

2

Trong các thành phần cổ điển (trái ngược với các thành phần ánh sáng lung linh), tất cả các ràng buộc đều có thể thay đổi được, vì vậy thường không cần thiết để sử dụng trình trợ giúp mut. Sau đây sẽ làm việc tốt:

// templates/index.hbs 
<form> 
    {{form-control value=model.firstValue}} 
    {{form-control value=model.secondValue}} 
</form> 

// templates/components/form-control.hbs 
{{input type="text" value=value}} 

các mục đích sử dụng của cả mut helper và attrs là cho các thành phần tia, cũng được gọi là thành phần khung góc, mà hiện không được phát hành trong phiên bản ổn định Ember.js'.

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