Knockout.js 1.3.0使用无容器控制流时的IF语句语法

时间:2011-11-13 14:53:10

标签: syntax knockout.js

以下是Steve Sanderson博客在淘汰赛中演示无容器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语句更复杂。我正在尝试以下内容并且它不起作用(总是返回false):

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

如何实现这一目标?

2 个答案:

答案 0 :(得分:5)

事实证明我犯了一个菜鸟错误。这是工作代码:

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

由于变量是由knockout组成的,因此需要PlanStateName上的括号来访问基础数据。

答案 1 :(得分:0)

您需要使用{}包围逻辑语句。

请参阅http://jsfiddle.net/photo_tom/nvYdf/55/