首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法识别敲除removeAll()

无法识别敲除removeAll()
EN

Stack Overflow用户
提问于 2013-02-22 19:07:43
回答 1查看 1.7K关注 0票数 0

我有一个将视图模型绑定到jQuery UI对话框中的HTML表的页面。

当用户关闭对话框时,我想删除绑定到observableArray表的视图模型中的所有元素。我使用的是removeAll()方法,但是我的firebug告诉我它不能被识别为一个函数。

你能帮帮我吗?

这是一个简化的场景。

HTML

代码语言:javascript
复制
<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

代码语言:javascript
复制
$(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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-22 19:15:18

您尚未将视图模型分配给变量,因此在cancel方法中不存在该变量:

代码语言:javascript
复制
var vm = new vm();
ko.applyBindings(vm);

jsFiddle

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15022764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档