我有一个简单的应用程序,它将一个项目添加到列表中,但该项目将添加到列表的底部而不是顶部。有没有办法让它添加到顶部,如前置?如果您需要更多代码,请与我们联系。任何帮助是极大的赞赏。谢谢。
HTML
<!-- LOOP OVER THE TODOS IN $scope.todos -->
<div class="checkbox" ng-repeat="todo in todos">
<label>
<input type="checkbox" ng-click="deleteTodo(todo._id)"> {{ todo.text }}
</label>
</div>
一些Angular.js
// when submitting the add form, send the text to the node API
$scope.createTodo = function() {
$scope.loading = true;
// validate the formData to make sure that something is there
// if form is empty, nothing will happen
if ($scope.formData.text != undefined) {
// call the create function from our service (returns a promise object)
Todos.create($scope.formData)
// if successful creation, call our get function to get all the new todos
.success(function(data) {
$scope.loading = false;
$scope.formData = {}; // clear the form so our user is ready to enter another
$scope.todos = data; // assign our new list of todos
});
}
};
// create todo and send back all todos after creation
app.post('/api/todos', function(req, res) {
// create a todo, information comes from AJAX request from Angular
Todo.create({
text : req.body.text,
done : false
}, function(err, todo) {
if (err)
res.send(err);
// get and return all the todos after you create another
Todo.find(function(err, todos) {
if (err)
res.send(err)
res.json(todos);
});
});
});
答案 0 :(得分:1)
在从评论中获得更多信息后重写答案。
问题是todos是一个对象而不是一个数组。在Angular中,当在对象上迭代(ng-repeat)时,对象的键用于确定项的顺序。在处理事物列表(待办事项)时,这通常不是您想要的。因此,解决这个问题的方法是更改后端,以便返回一个数组。
我不会过多地介绍mongodb有关如何完成此操作的详细信息,但通常您可以将每个待办事项存储为自己的文档并返回所有文档的get,或者您可以存储一个带有todos属性的文档(这是一个BsonArray)并返回该文档。