javascript - 使用 Angular 将最新项目置于待办事项列表顶部

标签 javascript angularjs

我的待办事项列表有问题。我希望当我输入新项目时,它出现在列表项目的顶部,而不是列表项目的下方。我已将 track by -$index 但它不起作用

index.html 片段

<ul class="unstyled">
   <li ng-repeat="todo in todos track by -$index">
       <input type="checkbox" ng-model="todo.done">
       <span class="done-{{todo.done}}">{{todo.text}}</span>
    </li>
</ul>

controller.js 片段

app.controller('TodoListController', ['$scope', function($scope) {
    $scope.todos = [];

    $scope.addTodo = function() {
        $scope.todos.push({text:$scope.todoText, done:false});
        $scope.todoText = '';
    };

有什么解决办法吗?

最佳答案

使用unshift()将项目添加到数组前面而不是 push() 并通过 -$index 删除 track

Javascript

app.controller('TodoListController', ['$scope', function($scope) {
    $scope.todos = [];

    $scope.addTodo = function() {
        $scope.todos.unshift({text:$scope.todoText, done:false});
        $scope.todoText = '';
    };

HTML

<ul class="unstyled">
   <li ng-repeat="todo in todos">
       <input type="checkbox" ng-model="todo.done">
       <span class="done-{{todo.done}}">{{todo.text}}</span>
    </li>
</ul>

关于javascript - 使用 Angular 将最新项目置于待办事项列表顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413169/

相关文章:

jquery - 页面加载后如何初始化 angularjs ng-app

javascript - 从 IPromise 获取 errorCallback 的问题

javascript - lodash绑定(bind)函数用作jQuery事件处理程序...可能吗?

javascript - 为什么我不能在函数中执行此操作?

java - 如何在javascript中将整数转换为int

javascript - Angular2 - 从变量分配管道

javascript - $watch 阻止 rootScope 更改

javascript - 模块 'ngRoute' 不可用

javascript - AngularJS 在数据集中显示最大重现属性

javascript - 如何在 Fabric.js 中填充两个对象的交集?