繁体   English   中英

将参数传递给指令的父控制器功能

[英]Passing parameters to directive's parent controller function

我已经阅读了一些有关此问题,但仍然不知道如何解决此问题。 简单来说,我有一个自定义指令:

.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作为参数传递给console.log的控制器函数时,它的undefined 但是,检查后, {{todo._id}}正确插值,因此该值确实存在。 我知道我缺少什么,但我不知道是什么。 有人可以帮我吗?

抱歉,我刚刚解决了问题。

在ng-click内,我对此进行了更改:

ng-click="deleteTodo(todo._id)"

对此:

ng-click="deleteTodo({id: todo._id})"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM