2012-07-11 21 views
5

Làm cách nào để liên kết lớp học với chế độ xem với trình trợ giúp #view, nếu boolean là FALSE?Xem trợ giúp: classBinding nếu boolean là false

// this is working 
{{#view App.MyView controllerBinding="this" classBinding="controller.content.isActive"}} 
    <div>test</div> 
{{/view}} 

// and this is what i want: 
{{#view App.MyView controllerBinding="this" classBinding="!controller.content.isActive:is-not-active"}} 
    <div>test</div> 
{{/view}} 

Tôi muốn để ràng buộc is-not-active như một tên lớp để xem, nếu controller.content.isActive là sai.

Tôi có thể tạo một chức năng biến tần đơn giản trên màn hình, nhưng tôi có cách tốt hơn.

Trả lời

9

CẬP NHẬT: Yêu cầu Kéo đã được sáp nhập, vì vậy bạn có thể thêm một lớp cho một giá trị false như thế này:

{{#view App.MyView controllerBinding="this" 
    classBinding="controller.content.isActive:is-active:is-not-active"}} 
{{/view}} 

Nếu bạn không muốn thêm một lớp nếu giá trị là true , bạn có thể sử dụng cú pháp sau:

{{#view App.MyView controllerBinding="this" 
    classBinding="controller.content.isActive::is-not-active"}} 
{{/view}} 

tôi sẽ tạo ra một tài sản trên quan điểm (như bạn đã làm với biến tần của bạn) và ràng buộc như thế này:

tay lái:

{{#view App.MyView controllerBinding="this" classBinding="isNotActive"}} 
    <div>test</div> 
{{/view}} 

Javascript:

App.MyView = Ember.View.extend({ 
    isNotActive: Ember.Binding.not('controller.content.isActive') 
}); 

tôi đã tạo ra một Pull Request mà vẫn chưa được sáp nhập nhưng nó giải quyết vấn đề này và sẽ giải quyết nó tương tự như sau:

{{#view App.MyView controllerBinding="this" 
    classBinding="controller.content.isActive:is-active:is-not-active"}} 
    <div>test</div> 
{{/view}} 
+0

Cảm ơn. Đây là chính xác những gì tôi có nghĩa là với một "biến tần". Tôi sẽ sử dụng điều này ngay bây giờ và hy vọng cho Pull Request. – Lux

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