嵌套元素未在淘汰赛中生成:foreach

时间:2015-09-15 07:28:49

标签: razor knockout.js knockout-mvc

这是我的HTML代码:

<div class="crs-wt-dropbox crs-wt-dropbox-row" data-bind="foreach :rowCols">
   <span class="crs-wt-drop-item" data-bind="text: text"> <a class="close-ico" href="#" > </a></span>
</div>

其中foreach :rowCols rowCols将动态更新: 因此,在向rowCols添加几个值后,它生成了以下代码

<div class="crs-wt-dropbox crs-wt-dropbox-row" data-bind="foreach :rowCols">
<span class="crs-wt-drop-item" data-bind="text: text">Account</span>
<span class="crs-wt-drop-item" data-bind="text: text">Account number</span>
</div>

但我想知道为什么它没有生成任何锚标记?

1 个答案:

答案 0 :(得分:1)

您的data-bind =“text:text”绑定取代了span的内部内容。所以你得到“帐户”文本而不是锚标记。

更新1

如果我理解你的要求,要克服这种行为,你应该将“text”绑定移动到锚元素中:

 <span class="crs-wt-drop-item"><a class="close-ico" href="#" data-bind="text: text"></a></span>

更新2

在我看来,这段代码片段解决了这个任务:

var model = { rowCols: [ { text: 'Item 1'}, { text: 'Item 2'} ] }

ko.applyBindings(model);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<div class="crs-wt-dropbox crs-wt-dropbox-row" data-bind="foreach: rowCols">
   <span class="crs-wt-drop-item"><a class="close-ico" href="#" data-bind="text: text"></a></span>
</div>