使用Rangy时出错-方法在Angular5中不起作用
我按照上面的说明进口兰吉。我想在Rangy中使用TextRange的函数。但是,我发现类型“RangySelection”上不存在错误属性“expand” 我的代码:使用Rangy时出错-方法在Angular5中不起作用,angular,textselection,rangy,Angular,Textselection,Rangy,我按照上面的说明进口兰吉。我想在Rangy中使用TextRange的函数。但是,我发现类型“RangySelection”上不存在错误属性“expand” 我的代码: import * as rangy from 'rangy' showSelectedText(){ var selTxt = rangy.getSelection()*.expand()*; console.log('selTxt: '+selTxt); } 在console.log(
import * as rangy from 'rangy'
showSelectedText(){
var selTxt = rangy.getSelection()*.expand()*;
console.log('selTxt: '+selTxt);
}
在console.log(rangy)上,我得到:
log(rangy.getSelection())作为输出提供
加载模块时(如您在控制台.log()中看到的),但这些方法不起作用,请尝试安装Rangy的类型:
npm安装--save@types/rangy
如果仍然不起作用,您可以尝试:
(任意排列).getSelection().expand()代码>
另外,请确保rangy.getSelection()
返回一个rangy对象(而不是未定义的),否则expand()
将不可用。函数似乎已作为控制台断开。log(rangy.getSelection())未将expand()显示为选项 过去对我有效的方法是导入其中一个模块。
以及导入其他模块(如果需要)
import * as rangy from 'rangy/lib/rangy-classapplier';
import 'rangy/lib/rangy-highlighter'; //imports another module into rangy
import 'rangy/lib/rangy-core.js'; //and another
import 'rangy/lib/rangy-textrange';
import 'rangy/lib/rangy-serializer';
如果已加载,则范围选择仅具有expand()
方法。这是因为该模块是一个相当大的代码位,并且没有作为Rangy核心的一部分加载。您只需确保以您喜欢的方式加载模块代码。如果您console.log(rangy)
,会发生什么情况?我正在更新我的问题,以显示发生了什么@JeffreyRoosendaaladd“./node_modules/rangy/lib/rangy textrange.js”
在.angular.cli.json的脚本数组中,告诉我/p@Vikas我也犯了同样的错误。出于某种原因,rangy.expand()也不是函数。您在修改后重新启动了应用程序吗?我尝试了这两种方法,但仍然得到错误类型error:rangy.getSelection(…)。expand不是函数,而是console.log(rangy.getSelection())
可以工作吗?可能它不是一个函数,因为getSelection()
返回的是undefined
,而不是rangy对象。我把从rangy中得到的东西放在问题中。getSelection()它不返回undefined,请参见。但它也没有将expand()
列为方法。你确定你能同时使用这两个吗?你试过没有棱角吗?啊,太遗憾了。老实说,我真的不知道兰吉是干什么的,但也许你可以:这对我来说几乎奏效了。从“rangy”导入*作为rangy;导入'rangy/lib/rangy core';导入'rangy/lib/rangy textrange';导入“rangy/lib/rangy序列化程序”;导入“rangy/lib/rangy类应用程序”;导入“rangy/lib/rangy荧光笔”;我还在组件中创建了属性:private rangy=rangy as any