Knockout.js 1.3.0 Синтаксис оператора IF при использовании потока без контейнера - PullRequest
1 голос
/ 13 ноября 2011

Вот пример из блога Стива Сандерсона, демонстрирующий безконтейнерное утверждение IF в нокауте:

<h3>Products</h3>

<ul>
    <li><strong>Here is a static header item</strong></li>
    <!-- ko foreach: products -->
    <li>
        <em data-bind="text: name"></em>
        <!-- ko if: manufacturer -->        
            &mdash; made by <span data-bind="text: manufacturer.company"></span>
        <!-- /ko -->
    </li>
    <!-- /ko -->
</ul>

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

<!-- ko if: PlanStateName == 'Draft' -->
<div>This plan is a draft!</div>
<!-- /ko -->

Как можно это сделать?

Ответы [ 2 ]

5 голосов
/ 14 ноября 2011

Вот и получается, что я совершил ошибку новичка. Вот рабочий код:

<!-- ko if: PlanStateName() == 'Draft' -->
<div>This plan is a draft!</div>
<!-- /ko -->

Поскольку переменные переносятся с помощью нокаута, скобки в PlanStateName необходимы для доступа к базовым данным.

0 голосов
/ 13 ноября 2011

Вам нужно окружить логическое утверждение {}.

См. http://jsfiddle.net/photo_tom/nvYdf/55/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...