没有处理该操作 'deleteComment'

Nothing handled the action 'deleteComment'

我有 2 个动作处理程序,updateComment 和 deleteComment,它们都以完全相同的方式爬上路线,但 updateComment 工作正常,而 deleteComment 没有,给出错误“没有处理动作 'deleteComment'.

路线: Review.js

updateComment(comment, params) {
            Object.keys(params).forEach(function(key) {
                if(params[key]!== undefined) {
                    comment.set(key,params[key]);
                }
            });
            comment.save();
        }
    },
    deleteComment(comment) {
                comment.destroyRecord();
        }

Review.hbs

{{comment-list
    loginId=model.loginId
    article=model.article
    user=model.user
    session=model.session
    updateComment="updateComment"
    deleteComment="deleteComment"
}}

组件:评论-list.js

import Ember from 'ember';

export default Ember.Component.extend({
    actions: {

        updateComment(comment) {
            let params = {
                title: this.get('title')
            };
            this.sendAction('updateComment', comment, params);
        },
        deleteComment(comment) {
            this.sendAction('deleteComment', comment);
        }
    }
});

评论-list.hbs

    {{#each article.comments as |comment|}}
    {{comment-tile
            comment=comment
            user=user
            loginId=loginId
            updateComment="updateComment"
            deleteComment="deleteComment"

    }}
{{/each}}

comment-tile.js与comment-list.js.

完全一样

评论-tile.hbs

            {{#if isAllowed}}
            {{comment-update
                    user=user
                    comment=comment
                    updateComment="updateComment"
            }}

            {{comment-delete
                    user=user
                    comment=comment
                    deleteComment="deleteComment"
            }}
        {{/if}}

评论-update.js + 分类-update.hbs

import Ember from 'ember';

export default Ember.Component.extend({
    updateCommentForm: false,
    actions: {
        updateCommentForm() {
            this.set('updateCommentForm', true);
        },
        updateComment(comment) {
            let params = {
                title: this.get('title'),
                body: this.get('body'),
                score: this.get('score')
            };
            this.set('updateCommentForm', false);
            this.sendAction('updateComment', comment, params);
        }
    }

});

{{#if updateCommentForm}}
    <div>
        <form>
            <div class="form-group">
                <label for="titleupdate">Titel</label>
                {{input value=comment.title id="titleupdate"}}
            </div>
            <div class="form-group">
                <label for="bodyupdate">Inhoud</label>
                {{input value=comment.body id="bodyupdate"}}
            </div>
            <div class="form-group">
                <label for="scoreupdate">Score</label>
                {{input value=comment.score id="scoreupdate"}}
            </div>

            <button class="btn-default" {{action 'updateComment' comment}}>Opslaan</button>
        </form>
    </div>
{{else}}
    <button class="btn-default btn-info" {{action 'updateCommentForm'}}>Aanpassen</button>
{{/if}}

评论-delete.js + 评论-delete.hbs

import Ember from 'ember';

export default Ember.Component.extend({
    actions: {
        deleteComment(comment) {
            this.sendAction('deleteComment', comment);
        }
    }
});

<button class="btn-default btn-danger" {{action 'deleteComment' comment}}>Verwijderen</button>

这是完全相同的代码,只是最后分成了 2 个部分。在我的一生中,我无法弄清楚为什么删除操作不起作用。当我将名称从 destroyComment 更改为 deleteComment 时,我从路由向下工作到最深的组件,当我重命名最深的组件时错误发生了变化,所以我猜它在最深的层次上出错了,但我真的不知道不明白为什么。

编辑 1: 按照建议将我的代码更改为关闭操作,但同样的问题仍然存在。

编辑 2: 在 review.js 中,在比我发布的代码更高的级别上缺少花括号。 actions:{} 在 updateComment 之后和 deleteComment 之前关闭,排除了后者的使用,但 Webstorm 没有抛出错误。这是包含错误的完整代码:

    actions: {
    saveComment(params) {
        let newComment = this.store.createRecord('comment', params);

        let article = params.article;
        let user = params.user;
        article.get('comments').addObject(newComment);
        user.get('comments').addObject(newComment);
        newComment.save().then(function () {
            return article.save().then(function () {
                return user.save();
            });
        });
    },
    updateComment(comment, params) {
        Object.keys(params).forEach(function (key) {
            if (params[key] !== undefined) {
                comment.set(key, params[key]);
            }
        });
        comment.save();
    },
    deleteComment(comment) {
        comment.destroyRecord();
    }
//Here should have been another curly brace.
});

在 review.js 中,在比我发布的代码更高的级别上缺少一个大括号。 actions:{} 在 updateComment 之后和 deleteComment 之前关闭,排除了后者的使用,但 Webstorm 没有抛出错误。

请参阅 EDIT 2 中的代码,以欣赏我的愚蠢。