无容器控制流程无法正常工作

时间:2014-04-15 13:02:59

标签: knockout.js

为什么这对我不起作用?我正在使用淘汰赛2.3。

<!-- ko if: vendorName() -->
  <div>
    <label for="vendorName" class="form-label bold">Name:</label>
    <input name="vendorName" id="vendorName" type="text" class="" style="">
  </div>
<!-- /ko -->

这是视图模型

function SearchFieldViewModel() {
    var self = this;
    self.vendorName = ko.observable(false)
};

我尝试添加$root$parent。我试过了vendorName(),只是vendorName。什么都行不通。如果我在div上使用标准数据绑定,那就可以了。我只是无法使无容器语法工作,我更喜欢使用它,因为我希望div消失,而不仅仅是div里面的内容。

2 个答案:

答案 0 :(得分:2)

正如帕特里克斯蒂尔所说,评论被剥夺了。但不是由浏览器,而是由JSF。使用这个工作:

<h:outputText value="&lt;!--" escape="false" /> ko if: vendorName <h:outputText value="--&gt;" escape="false" />
....
....
<h:outputText value="&lt;!--" escape="false" /> /ko <h:outputText value="--&gt;" escape="false" />

答案 1 :(得分:1)

上述评论中的建议似乎可以解决这个问题

<!-- ko if: vendorName -->
  <div>
    <label for="vendorName" class="form-label bold">Name:</label>
    <input type="text" name="vendorName" id="vendorName" data-bind="Name"/>
  </div>
<!-- /ko -->


function SearchFieldViewModel() {
    var self = this;
    self.vendorName = ko.observable(false);    
};

ko.applyBindings(new SearchFieldViewModel());

JSFiddle:http://jsfiddle.net/Pe9Kz/