【发布时间】:2019-12-13 02:51:38
【问题描述】:
我正在修改一个用 Ionic v1 编写的应用程序。
有一个名为“客户资料”的主视图,其中有两个其他视图的链接:支持请求和投诉。
在支持请求视图中,有一个 ID 为“description”的 TextArea,还有一个在点击按钮时调用的函数,该函数使用 jQuery 获取此文本区域的内容。
var request_description = $("#description").val();
执行此功能后,您将返回主视图(客户资料)。
如果然后您打开“投诉”视图,这里还有一个 id 为“description”的文本区域,还有另一个函数执行相同的操作,并使用上面的相同代码使用 jQuery 获取该文本区域的内容。
问题是这段代码失败了,因为之前打开的“支持请求”的 ion-view 仍然存在于 DOM 中——即id 为 "description" 的元素的第一次出现被匹配,它属于前一个视图,而不是当前可见的-。我知道问题可能是使用选择器直接从 DOM 获取值,这与您应该做的相反,但由于这是旧代码,我也没有时间更改它很多...
1) 我的问题是为什么会发生这种情况,这是 Angular 的正常行为 - 将以前的视图保留在 DOM 中 - 还是我遗漏了什么?
2) 除了给每个文本区域一个不同的 id,我可以做些什么来从 DOM 中删除以前的 ion-view 或完全阻止这种行为。
【问题讨论】:
标签: javascript jquery angular ionic-framework