javascript - 语义 UI 多重搜索下拉菜单 - onRemove 不删除标签

标签 javascript angularjs drop-down-menu semantic-ui

我正在一个项目中使用语义 UI,但我遇到了一个小问题。

在我的多个搜索下拉列表中,我希望能够删除标签并在执行此操作时执行回调函数。

回调函数工作正常,但是单击十字时标签不会被删除。它只是停留在那里,就好像我选择了它一样。

我也在这个项目中使用 Angular JS,所以这里是下拉菜单的指令:

app.directive('dropdownSearchPersonalities', function () {
    return {
        restrict : 'A',
        link : function (scope, elem, attrs) {
            var personalitiesLength = scope.student.personalities.length;
            var studentPersonalities = [];

            for(var i = 0; i < personalitiesLength; i++) {
                studentPersonalities[i] = scope.student.personalities[i].name;
            }

            $(elem).dropdown({
                allowAdditions : true,
                onAdd: function (value) {
                    if(personalitiesLength) {
                        if($.inArray(value, studentPersonalities) != -1)
                            return;
                        else
                            scope.addPersonality(value, scope.studentId);
                    } else {
                        scope.addPersonality(value, scope.studentId);
                    }
                },
                onRemove: function (value, text, choice) {
                    scope.removePersonality(value, scope.studentId);
                }
            });

            $(elem).dropdown('set selected', studentPersonalities);
        }
    }
});

我再说一遍,唯一不起作用的是标签没有被删除,如果我刷新页面,本来要删除的标签就会消失。

这是尝试删除时的外观图像:

光标没有显示,但实际上位于十字图标上。

有人遇到过这个问题吗?我该如何解决?

非常感谢!

最佳答案

使用onChange,然后在您的输入(事件、数据)中,“数据”部分将检测您是否单击“x”或是否添加标签。例如:

onChange (event, data) {
  this.setState({
    data: { ...this.state.data, [data.name]: data.value}
  });
}

该值会自动更新您的数组并选择所有选项。

关于javascript - 语义 UI 多重搜索下拉菜单 - onRemove 不删除标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39431389/

相关文章:

javascript - Angular Material 2 md-tab内容高度

javascript - 带有 angularjs 1.5 的谷歌地图实现

javascript - 将 2D 数组的 2D 网格展平为单个 2D 数组,在 JavaScript 中(功能上?)

javascript - 在 Angular js 中使用 orderby 子句按 Id 降序对记录进行排序时出现错误

Java - 如何显示一个输入对话框,其中包含一个下拉列表,每个项目都有一个图标?

javascript - 如何获取包含某个ID的表名?

javascript - AngularJS:仅将搜索过滤器应用于 ng-repeat 的第一个子级

angularjs - 更新 Angular JS 服务中 $Promise 内的 'this' 上下文属性

css - 如何在悬停时创建 Twitter Bootstrap 'Split button dropdown' 下拉菜单而不是单击?

google-app-engine - 从 Jinja2 下拉菜单将变量传递给 Python