首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象内部的接合对象数组总是移除最后一个对象。

对象内部的接合对象数组总是移除最后一个对象。
EN

Stack Overflow用户
提问于 2016-05-07 14:24:40
回答 1查看 1.1K关注 0票数 1

我有一个对象,它包含一个称为“块”的对象数组:

代码语言:javascript
复制
$scope.microsite = {
    images: [
        {url: "https://unsplash.it/800/400/?image=20"},
        {url: "https://unsplash.it/800/400/?image=15"},
        {url: "https://unsplash.it/800/400/?image=52"}
    ],
    blocks: []
};

当我向这个数组添加一些内容时,它的行为非常正常:

代码语言:javascript
复制
$scope.addElement = function(a){
    if(a=='heroslider'){
        var data = {
            slides: [
                {
                    id:0,
                    image:0,
                    title: "Title",
                    desc: "Description",
                },
                {
                    id:1,
                    image:1,
                    title: "Title",
                    desc: "Description",
                },
                {
                    id:2,
                    image:2,
                    title: "Title",
                    desc: "Description",
                }
            ]
        };
    } else if(a=='threecol'){
        var data = {
            columns: [
                {
                    title: "Column one",
                    text: "This is a column for features",
                },
                {
                    title: "Column two",
                    text: "This is a column for features",
                }
            ]
        };
    }
    var element = {
        template: a,
        data: data
    };
    $scope.microsite.blocks.push(element);
}

然而,当我试图从数组中删除一个对象时,我在ng-单击上调用这个函数,然后从ng-重复中传入该对象.

代码语言:javascript
复制
$scope.removeElement = function(element){
    var x = $scope.microsite.blocks.indexOf(element);
    console.log($scope.microsite.blocks[x]);
    console.log(x);
    $scope.microsite.blocks.splice(x, 1);
}

我能够在我的控制台中获得正确的对象和正确的索引,但是当它连接数组时,最后一个对象总是被删除,这很奇怪,因为只有当我试图删除的索引不存在时才会发生这种情况(因此等于-1)。

知道为什么会发生这种事吗?

编辑:我也尝试在元素中直接使用ng-click="microsite.blocks.splice( $index,1)“,以及将$index传递给函数而不是元素。在所有情况下,都会找到正确的索引,但结果仍然相同,只有最后一个条目被删除。

EN

回答 1

Stack Overflow用户

发布于 2016-05-08 08:52:42

原来,这是一个错误的“跟踪由$index”的角度。从我的ng-重复中删除“$index跟踪”之后,splice()正常工作。

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

https://stackoverflow.com/questions/37089690

复制
相关文章

相似问题

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