首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将项目推送到$scope数组的第一个索引或0索引

将项目推送到$scope数组的第一个索引或0索引
EN

Stack Overflow用户
提问于 2013-07-24 14:31:41
回答 5查看 80.3K关注 0票数 26

请帮我实现这个函数。我的$scope中有一个项目数组。现在,当我单击Add Item按钮时,我希望将一个新项推送到该数组的第一个索引或0索引。提前谢谢。:)

下面是一个可以正常工作的jsFiddle

HTML:

代码语言:javascript
复制
<div ng-controller="Ctrl">
    {{data}}<br/>
    <input type="button" ng-click="addItem()" value="Add Item" />
</div>

JavaScript:

代码语言:javascript
复制
function Ctrl($scope) {
    $scope.data = [
    new String('Item 5'), new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];

    $scope.addItem = function () {
        var c = $scope.data.length + 1;
        var item = new String('Item ' + c)
        $scope.data.push(item);
    };
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-07-24 14:52:22

通过使用splice()而不是push()并指定要插入的数组索引,解决了我的问题。

HTML:

代码语言:javascript
复制
<div ng-controller="Ctrl">
    <pre>{{data}}</pre><br/>
    <input type="button" ng-click="addItem()" value="Add Item" />
</div>

Javascript:

代码语言:javascript
复制
function Ctrl($scope) {
    $scope.data = [
    new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];

    $scope.addItem = function () {
        var c = $scope.data.length + 1;
        var item = new String('Item ' + c)
        $scope.data.splice(0, 0, item);
    };
}

这是针对这一点的更新的fiddle

票数 29
EN

Stack Overflow用户

发布于 2015-02-17 08:20:57

您可以使用unshift函数。

代码语言:javascript
复制
function Ctrl($scope) {
$scope.data = [
new String('Item 5'), new String('Item 4'), new String('Item 3'), new String('Item 2'), new String('Item 1')];

$scope.addItem = function () {
    var item = new String('Item ' + c)
    $scope.data.unshift(item);
};
}
票数 31
EN

Stack Overflow用户

发布于 2016-09-28 23:33:17

代码语言:javascript
复制
$scope.data.unshift(item);

有一行,我不确定为什么其他的让它变得如此困难

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

https://stackoverflow.com/questions/17826766

复制
相关文章

相似问题

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