2014-05-23 15 views
7

Trong một phản ứng với một similar question, có nghĩa là hơn một năm cũ, tôi đọc về một cách dễ dàng để vô hiệu hóa một nút sử dụng dữ liệu ràng buộc trong Dart (và polymer-phi tiêu).Làm cách nào để tắt nút bằng cách sử dụng các ràng buộc dữ liệu trong Dart?

mã hiện tại của tôi trông như thế này:

html:

... 
<button id="btnPointDown" on-click="{{decrement}}" disabled="{{points == 0}}">\/</button> 
... 

.dart:

... 
@published int points = 0; 

void increment() { 
    points++; 
} 

void decrement() { 
    points--; 
} 
... 

Tuy nhiên Dart không có vẻ 'để trở nên thông minh' về phần tử bị tắt nữa.

Làm thế nào để sử dụng up-to-date Dart và Polymer để vô hiệu hóa một nút sử dụng liên kết dữ liệu (hoặc nếu không thể lập trình)?

Trả lời

18

Binding vào thuộc tính tàn tật có thể được thực hiện như thế này:

<button ... disabled?="{{ points == 0 }}">Content</button> 

? này được cú pháp đặc biệt được giới thiệu bởi Polymer để hỗ trợ ràng buộc để loại thuộc tính boolean.

này không hoạt động:

<button ... disabled="{{ points == 0 }}">Content</button> 

Bởi vì nó sẽ cho kết quả trong

<button ... disabled="false">Content</button> 

mà vẫn sẽ vô hiệu hóa các nút.

Đối Polymer> = 1.0 cú pháp mới để sử dụng là:

<button ... disabled$="{{value}}">Content</button> 

Lưu ý: value đã có được một boolean như Marco chỉ ra dưới đây. Nếu không, bạn phải tạo một hàm trả về points == 0. Xem Data Binding Documentation tại đây và Migration Guide tại đây để tham khảo.

Kính trọng, Robert

+0

Cảm ơn câu trả lời! Đây có phải là tài liệu trong Tài liệu Polymer ở ​​đâu đó không? – snowdragon

+0

Có nó là: https://www.polymer-project.org/docs/polymer/binding-types.html#conditional-attributes – Robert

+0

tiếc là điều này dường như không được làm việc cho 1.0 nữa –

6

cho polymer 1.0 Tôi tìm thấy câu trả lời here.

Nó nên là: <button ... disabled$="{{myTestFunction()}}">Content</button>

FYI: Tôi có không thể sử dụng câu lệnh đơn giản như points == 0, nhưng thay vào đó tôi đã phải sử dụng một chức năng, mà trả về một boolean.

+0

biểu Binding được rất hạn chế trong 1 .x. Chỉ các tên thuộc tính, toán tử không '!' Và các lời gọi hàm được hỗ trợ. –

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