我已经阅读了几个问题,我仍然无法弄清楚如何解决这个问题。简单地说,我有一个自定义指令:
.directive('todoList', function() {
return {
restrict: 'AE',
scope: {
todos: '=todos',
deleteTodo: '&'
},
replace: true,
templateUrl: '/public/partials/todoList.html'
}
})
我的自定义指令如下所示:
<todo-list todos="todo.todos" delete-todo="todo.deleteTodo(id)"></todo-list>
在我的控制器中,它看起来像这样:
function deleteTodo(id) {
console.log(id) // undefined
todoService.deleteTodo(id)
.then(function(todo) {
todoService.getTodos();
}, function(err, status) {
todoService.getTodos();
})
}
// using controllerAs
this.deleteTodo = deleteTodo;
我的指令的HTML是这样的:
<div ng-repeat="todo in todos track by $index">
<span class="item">{{todo.name}}<button type="button" class="btn btn-danger delete" ng-click="deleteTodo(todo._id)">Delete Item</button></span>
</div>
问题在于todo._id
作为参数在传递给undefined
中的控制器函数时显示为console.log
。但是在检查时,{{todo._id}}
会正确插值,因此值确实存在。我知道我错过了什么,但我无法弄清楚是什么。有人可以帮帮我吗?
答案 0 :(得分:0)
道歉,我刚刚解决了。
在我的ng-click中,我改变了它:
ng-click="deleteTodo(todo._id)"
对此:
ng-click="deleteTodo({id: todo._id})"