问题标签 [tvjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
8 浏览

javascript - TVJS - 尝试显示结果时搜索功能崩溃

我正在开发一个 TVML 应用程序。其中一个屏幕显示了供用户输入关键字的搜索表单。输入的文本将与包含现有每个项目的先前存在的 JSON 文件进行比较。在过滤可用结果后,这些用于通过使用外部 XML 文件构建 XML 节点,然后将它们导入到搜索文档中,特别是导入到 Id 为“结果”的部分。问题是,如果我直接输入搜索词,搜索就会发生。但是,如果我一个字母一个字母地输入(允许在每个字母之后进行搜索),那么应用程序就会崩溃并且我会收到以下错误:

(索引号和范围因结果不同而异)

以下是我目前拥有的文件:

搜索.tvml

搜索结果.tvml

SearchHandler.js

我一直在使用 Safari 控制台监视 searchVideosForString 方法的结果,我发现,例如,如果我尝试搜索存在于完整结果中的“Parry”,如果我输入单词“Par ",控制台为搜索结果显示一个包含 18 个对象的数组。如果我打开显示三角形,它会显示这 18 个对象中的每一个。如果我在搜索中添加一个字符来查找“Parr”,那么应用程序就会崩溃。控制台为搜索结果显示一个包含 1 个对象的数组,但如果我打开显示三角形,它是空的,我看不到实际对象是什么。

我尝试在 handleSearch 方法中删除部分代码。如果我删除下面的所有内容

然后我可以在搜索框中输入任何文本而不会出现任何问题,并且控制台会显示适当的搜索结果,无论它们有多少。

似乎问题发生在这一行:

但我无法弄清楚索引超出范围异常的原因和来源。