【问题标题】:knockoutjs foreach not working in Wijmo modal dialogknockoutjs foreach 在 Wijmo 模态对话框中不起作用
【发布时间】:2013-06-30 17:45:19
【问题描述】:

我用 wijmo 创建了一个模态对话框。在对话框中,我想显示依赖于 knockoutjs 模型的内容。

<tr data-bind="visible:fields().length > 0">
    <td>Enter</td>
    <td>
        <div data-bind="foreach:fields">
            <span data-bind="text:$data"></span>
        </div>
    </td>
</tr>

条件(visible:fields().length &gt; 0)按预期工作,如果我将任何内容添加到可观察集合中,将显示“Enter”。但是 foreach 的跨度永远不会出现。

我创建了以下http://jsfiddle.net/79uh3/ 来演示该问题。

如果绑定 wijdialog 的 div 被注释掉,则示例按预期工作。

【问题讨论】:

    标签: knockout.js wijmo


    【解决方案1】:

    这是一种奇怪的行为。我发现的单一解决方案是将默认值添加到 observable array

    var VM = {
        fields: ko.observableArray([""]),
        newField: ko.observable(),
        addItem: function(){
            this.fields.push(this.newField());
        }
    };  
    

    JSFiddle DEMO

    【讨论】:

    • 是的,这出于某种奇怪的原因,但不会导致正确的行为,因为现在Enter 是可见的,即使observable array 中没有“真实数据”。我之前也没有注意到addItem 事件被触发了两次(至少在 Windows 上使用 Chrome 27)
    • @gtroxler 我只能提出这个变体jsfiddle.net/yy35P。但它有我的回答中的解决方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多