使用Rangy时出错-方法在Angular5中不起作用

使用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(

我按照上面的说明进口兰吉。我想在Rangy中使用TextRange的函数。但是,我发现类型“RangySelection”上不存在错误属性“expand”

我的代码:

    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