2015-07-31 3 views
7

У меня возникла проблема с заклинаниями bind-attr по атрибуту «disabled» на кнопке. В принципе, я не могу заставить его не отключать мою кнопку.Ember disabled button

isCancelled является логическим в моей модели, в соответствии с this он должен сделать «disabled» появляться и исчезать внутри рендерированного тега.

Кнопка выглядит следующим образом:

<button {{action "cancel" provisioning}} {{bind-attr disabled="isCancelled"}}> 

Он всегда делает 'инвалид' атрибут.

Я сделал простую проверку, чтобы отладить его. Это выглядит следующим образом:

isCancelled: {{isCancelled}} 

Это делает как: isCancelled: ложные

Я использую Ember 1.12.0

ответ

15

Синтаксис связывания-атр осуждается:

<button {{action "cancel" provisioning}} disabled={{isCancelled}}> 

И в вашем случае вы передаете строку, а не свойство isCancelled, поэтому оно всегда верно, {{bind-attr disabled=isCancelled}}> будет работать.

+0

Я также попытался с помощью '{{bind-attr disabled = isCancelled}}' ''. Тот же результат. Но я попробую 'disabled = {{isCancelled}}' завтра. – Osthekake

+2

'disabled = {{isCancelled}}' имел тот же результат. Тег отображается с атрибутом «disabled». – Osthekake

+0

Можете ли вы воссоздать свою проблему в http://emberjs.jsbin.com –

5

Проблема в том, что если isCancelled является ложным, он все равно будет отображать отключенный тег.

Убедитесь, что isCancelled имеет значение TRUE или NULL. Только когда он равен нулю, «disabled» не будет отображаться

+0

Я не верю, что это правда. Я никогда не исправлял эту проблему напрямую, но я избавился от нее в конце концов, изменив много кода и столкнувшись с Ember 2.0. – Osthekake

+0

Это дело в Ember 2.0. Я столкнулся с этим несколько недель назад. Другие ссылки: http://stackoverflow.com/questions/30358020/ember-htmlbars-boolean-bound-attributes-are-not-booleans https://github.com/emberjs/ember.js/issues/10976 –

+0

Это работает, в то время как 'вернуться false' не: ' кнопка <класс = "БТН БТН-см БТН-первичный" {{действие 'подтверждение'}} отключено = {{disableAddPerson}}> Toevoegen ' 'disableAddPerson: function() { var selectedPerson = this.get (" selectedPerson "); if (selectedPerson == null || this.get ("type") == null || this.get ("function") == null) { return true; } null null; } .property ("selectedPerson", "function", "type") ' –

Смежные вопросы