0

我有用于“添加”表单的视图模型。在该表格上,我有 1 个名为“描述”的文本框。第一次用户在该字段中输入一些文本。Whan 用户按下取消(在同一个表单上),然后再次按下添加,表单将出现在“描述”字段中输入的值。

我想创建新的视图模型并取消绑定所有具有错误值的模型。但是当我这样做时:

kendo.unbind($("#notes-dialog"));
kendo.bind($("#notes-dialog"), notesWindowModel);

旧值保留在描述文本框中。

编辑:

notesWindowModel = kendo.observable(
        {
            text: '2'
        });

    kendo.bind($("#notes-dialog"), notesWindowModel);

    var notesWindowModel2 = kendo.observable(
        {
            text: '4'
        });

    kendo.unbind($("#notes-dialog"));
    kendo.bind($("#notes-dialog"), notesWindowModel2);

为什么我的字段等于 2?

如果我添加

notesWindowModel.set('text', 'aaaa');

最后我的价值等于'aaaa'。这意味着元素绑定到第一个模型。这里有什么问题?

我发现了问题:

 <div id="notes-dialog">
    <div id="notes-dialog-window" data-role="window" data-width="410" data-height="510"   data-actions="" data-modal="true" data-title="false" style="display: none;">
    <div id="notes-new-item">
        <div>
            <h3>Notes</h3>
            <div>
                <span>Note</span> <span>Is Delay?</span><span><input data-bind="value: model.Entity.IsDelay" class='k-input notes-checkbox' type='checkbox' /></span>
            </div>
            <div>
                <textarea class="k-input utility-analysis-textarea notes-textarea" data-bind="value: text"></textarea>

问题是我在该元素中有剑道窗口,当我第一次打开该窗口时,它会替换 HTML 并且绑定是错误的。

4

1 回答 1

0

旧线程,但我最近遇到了同样的问题。就我而言,我只需要销毁所有剑道元素:

kendo.destroy(document.body);
于 2017-09-23T10:53:52.033 回答