Tagit 在我们的 Angular JS 应用程序中表现异常
Tagit behaving strangely in our Angular JS application
我们在 Angular JS 应用程序中使用 JQuery Tagit 库。这需要一些技巧,例如手动调用 $scope.$apply()
以确保 Tagit 小部件 UI 在特定时间更新。但是,我们遇到了一个我们没有专业知识来解决的问题。我们在一个页面上有两个 Tagit 框,其中一个出现在模式弹出窗口中(尽管仍在同一页面上)。这是这两个 Tagit 元素的 HTML 代码:
<ul id="mailShareTags" tag-it> <!-- for the main page -->
<ul id="mailIdTags" tag-it> <!-- for the modal -->
它们共享相同的指令,但 ID 不同。
问题:
我们观察到的是,如果用户从模态中的 Tagit 中删除条目,这些条目实际上会从 both 基础模型中删除。换句话说,如果我们通过以下代码检查当前分配的标签,我们会观察到从一个 Tagit 中删除标签会从 both 模型中删除它:
// removing from the modal also removes it here
$scope.currentIds = $("#mailShareTags").tagit("assignedTags");
问题还在继续。当我们的 JavaScript 代码通过以下方式在主 Tagit 上进行清理时:
tagit("removeTagByLabel", some_id);
在模式中删除的标签仍然出现在 UI 中。似乎即使这些标签已从模式中删除,也从未发生过让 UI 知道这些标签已删除的摘要(理想情况下,我们甚至不希望首先删除这些标签)。
我非常乐意提供您可能需要的任何信息。欢迎任何和所有见解。
信不信由你,我们试了一些东西,结果碰巧解决了问题,或者至少解决了 UI 中可见的错误。而不是使用:
$("#mailShareTags").tagit("removeTagByLabel", some_id);
对于小部件中的每个标签,我们只调用了一次:
$("#mailShareTags").tagit("removeAll");
这从 Tagit 中删除了所有元素,并在我们的例子中清理了 UI。
如果有人在删除所有标签时将 Tagit 模型与 UI 显示的内容同步时遇到问题,请考虑使用 tagit("remoteAll")
而不是单独删除标签。
我们在 Angular JS 应用程序中使用 JQuery Tagit 库。这需要一些技巧,例如手动调用 $scope.$apply()
以确保 Tagit 小部件 UI 在特定时间更新。但是,我们遇到了一个我们没有专业知识来解决的问题。我们在一个页面上有两个 Tagit 框,其中一个出现在模式弹出窗口中(尽管仍在同一页面上)。这是这两个 Tagit 元素的 HTML 代码:
<ul id="mailShareTags" tag-it> <!-- for the main page -->
<ul id="mailIdTags" tag-it> <!-- for the modal -->
它们共享相同的指令,但 ID 不同。
问题:
我们观察到的是,如果用户从模态中的 Tagit 中删除条目,这些条目实际上会从 both 基础模型中删除。换句话说,如果我们通过以下代码检查当前分配的标签,我们会观察到从一个 Tagit 中删除标签会从 both 模型中删除它:
// removing from the modal also removes it here
$scope.currentIds = $("#mailShareTags").tagit("assignedTags");
问题还在继续。当我们的 JavaScript 代码通过以下方式在主 Tagit 上进行清理时:
tagit("removeTagByLabel", some_id);
在模式中删除的标签仍然出现在 UI 中。似乎即使这些标签已从模式中删除,也从未发生过让 UI 知道这些标签已删除的摘要(理想情况下,我们甚至不希望首先删除这些标签)。
我非常乐意提供您可能需要的任何信息。欢迎任何和所有见解。
信不信由你,我们试了一些东西,结果碰巧解决了问题,或者至少解决了 UI 中可见的错误。而不是使用:
$("#mailShareTags").tagit("removeTagByLabel", some_id);
对于小部件中的每个标签,我们只调用了一次:
$("#mailShareTags").tagit("removeAll");
这从 Tagit 中删除了所有元素,并在我们的例子中清理了 UI。
如果有人在删除所有标签时将 Tagit 模型与 UI 显示的内容同步时遇到问题,请考虑使用 tagit("remoteAll")
而不是单独删除标签。