javascript - knockout removeAll()无法识别

标签 javascript jquery-ui data-binding knockout.js

我有一个页面,将 View 模型绑定(bind)到 jQuery UI 对话框内的 HTML 表。

当用户关闭对话框时,我想删除 viewmodel observableArray 中绑定(bind)到 HTML 表的所有元素。我正在使用 removeAll() 方法,但我的 Firebug 告诉我该方法未被识别为函数。

你能帮我吗?

这是一个简化的场景。

HTML

<input type="button" id="open" value="GO!"><br />
<div id='hidden'>
    <table>
        <tbody data-bind="foreach: i">
            <tr>
                <td><span data-bind="text: code" /></td>
                <td><span data-bind="text: descr" /></td>
            </tr>
        </tbody>
    </table>
</div>

JS

$(function () {

    function vm() {
        this.items = [
            {code: "2011",descr: "descr 2011"},
            {code: "2012",descr: "descr 2012"}, 
            {code: "2013",descr: "descr 2013"}
        ];

        this.i = ko.observableArray(this.items);

        this.clearFoundEvals = function()
        {
            this.i.removeAll();
        };

        return this;
    }

    ko.applyBindings(new vm());

    $dialog = $('#hidden').dialog({
        autoOpen: false,
        height: 200,
        width: 300,
        buttons: {
            cancel: function () {
                vm.clearFoundEvals();
                $(this).dialog('close');
            }
           }
        });

        $('#open').click(function(){
            $dialog.dialog('open');
        });    
    });    

Working example

最佳答案

您尚未将 View 模型分配给变量,因此它不存在于取消方法中:

var vm = new vm();
ko.applyBindings(vm);

jsFiddle

关于javascript - knockout removeAll()无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022764/

相关文章:

javascript - 正则表达式,提取组

当 "http://www.google.com/jsapi"脚本也被链接时,jquery ui 将无法工作

javascript - Mpeg Dash html5 播放器或直播视频

javascript - 将鼠标悬停在父列表上时显示嵌套列表

javascript - 当 JavaScript 代码中断并引发异常时,如何避免出现 Angular 标记?

jquery - 如何从特定元素中删除/添加 jQueryUI CSS 主题?

javascript - 未捕获的类型错误未定义不是 .empty() 上的函数

javascript - 如何在运行时创建不带数据属性的 knockout 数据绑定(bind)

Android数据绑定(bind)错误:Could not find com. android.databindig :databinder:1. 0.-rc1

javascript - 单击时填充选择并使用 knockout