2012-07-11 16 views
5

Bir boolean FALSE ise bir sınıfa #view yardımcı programıyla nasıl bağlanabilirim?Yardımı görüntüle: boolean false classBinding

// 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}} 

Ben controller.content.isActive yanlışsa, görünümüne bir sınıf ismi olarak is-not-active bağlamak istiyorum.

Görüntü üzerinde basit bir invertör işlevi yapabilirim, ancak daha iyi bir yol var.

cevap

9

GÜNCELLEME: Eğer böyle bir false değeri için sınıf ekleyebilmek çekin Talebi, birleştirildi:

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

değeri true olup olmadığını bir sınıf eklemek istemiyorsanız

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

Ben zaten yaptığı gibi (görünümünde bir özellik yaratacak: aşağıdaki sözdizimini kullanabilirsiniz senin invertörlü) ve bu bağlanma:

Gidon:

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

JavaScript:

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

Henüz birleşti edilmemiş bir Pull Request oluşturmak ettik ama bu soruna hitap ediyor ve buna benzer bir çözüm getiriyor:

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

Teşekkürler. Bu tam olarak bir "invertör" ile demek istediğim şey. Bunu şimdi kullanacağım ve Çekme İsteği için ümit ediyorum. – Lux