2013-11-23 5 views
0

Так с Нокаут я могу показать текст на основе, если условие возвращает истину или ложь, как это:Javascript несколько условных обозначений?

data-bind="text: status==0 ? 'Sent' : 'Failed'" 

Однако, мне нужно добавить еще одно условие, так что если status==1 то он возвращает Pending. Я предполагаю, что это, вероятно, просто общий вопрос JS против Knockout.

В любом случае, можно ли что-то сделать? Благодаря!

ответ

2

Похоже, вы действительно хотите использовать нокаут Computed Observables. Это позволит вам вернуть разные рассчитанные значения в зависимости от вашего статуса.

function ViewModel() { 
    this.status = ko.observable(); 
    this.statusText = ko.computed(function() { 
    if (this.status() == 0) { 
     return 'sent' 
    } else { 
     return 'failed'; 
    }, this); 
} 
+0

Это то, что было! Я мог бы поклясться, что есть способ использовать функцию в такой привязке, я просто не мог ее найти. Благодаря! :) – Caleb

+0

Нет проблем. Просто обновил ответ, потому что я отправил его до того, как закончил свой пример кода. – Jason

+1

Также логика перемещается на виртуальную машину, намного чище – Anders

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