Как использовать видимые привязки с наблюдаемым параметром переключателя? - PullRequest
4 голосов
/ 27 августа 2011

При отображении этой страницы выбирается правильный переключатель, но дополнительные значения должны отображаться при выборе значений переключателей «sendemail» или «sms», верно?

$(function () {
    var rbViewModel = {
        qrType: ko.observable('plaintext')
    };
    ko.applyBindings(rbViewModel);
});

Тогда мои радиокнопки

<input type="radio" name="txtType" value="plaintext" data-bind="checked: qrType" />Plaintext
<input type="radio" name="txtType" value="sendemail" data-bind="checked: qrType" />Send E-mail
<input type="radio" name="txtType" value="sms" data-bind="checked: qrType" />SMS

И мои входные данные:

<div data-bind="visible: qrType == 'sendemail'"><input type="text" id="txtEmailSubject" placeholder="E-mail subject" /></div>
<div data-bind="visible: qrType == 'sendemail'"><input type="text" id="txtEmailBody" placeholder="E-mail body" /></div>
<div data-bind="visible: qrType == 'sms'"><input type="text" id="txtSmsMsg" placeholder="SMS body" /></div>

Что-то не так с атрибутом элементов div? Я думал, что функции можно было использовать в видимых привязках согласно документации KnockoutJS , например:

data-bind="visible: qrType=='sendemail'"

1 Ответ

7 голосов
/ 27 августа 2011

Когда вы используете наблюдаемое в выражении в атрибуте привязки данных, вам нужно ссылаться на него с помощью ().

Они должны выглядеть следующим образом: visible: qrType() === 'sendemail'

...