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

时间:2018-06-18 13:54:58

标签: angular textselection rangy

Angular 4 and modules: Rangy 我按照上面的说明导入rangy。我想在Rangy的expand()中使用TextRange的函数documentation。但是,我收到错误属性'expand'在类型'RangySelection'上不存在。

我的代码:

    import * as rangy from 'rangy'

    showSelectedText(){
      var selTxt = rangy.getSelection()*.expand()*;
      console.log('selTxt: '+selTxt);
}

在console.log(rangy)上,我得到:

enter image description here

console.log(rangy.getSelection())作为输出 enter image description here

4 个答案:

答案 0 :(得分:1)

过去对我有用的东西是导入其中一个模块。 并在需要时导入其他模块。

    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';

答案 1 :(得分:0)

加载模块时(正如您在console.log()中看到的那样),但方法不起作用,请尝试安装Rangy的类型:

npm install --save @types/rangy

如果仍然无效,您可以尝试:

(rangy as any).getSelection().expand();

另外,请确保rangy.getSelection()返回一个笨拙的对象(而不是undefined),否则expand()将无效。

答案 2 :(得分:0)

似乎该函数被破坏,因为console.log(Rangy.getSelection())没有显示expand()作为选项。

答案 3 :(得分:0)

如果加载了TextRange module,则Rangy选择仅具有expand()方法。这是因为此模块是相当大量的代码,并且未作为Rangy核心的一部分加载。您只需要确保以任何喜欢的方式加载模块代码即可。