7

问题:

尝试将已编译的 angular 1.5 模板附加到现有的HTMLElement.

代码:

$document.find(scope.target)[0].append($compile(menu)(scope)[0]);

编译错误:

[ts] Property 'append' does not exist on type 'HTMLElement'

我已经搜索了类型定义,但没有看到append().

关于我应该使用哪种类型或版本的打字稿有什么想法吗?

谢谢!

4

3 回答 3

9

这里与 TypeScript 无关。

正确的调用方法是appendChild

https://developer.mozilla.org/en/docs/Web/API/Node/appendChild

append是一个 jQuery 方法,如果你想使用它,你可以这样做:

$document.find(scope.target).append($compile(menu)(scope)[0]);

它也应该工作。

我希望它有帮助

于 2017-06-21T22:36:03.103 回答
1

HTMLElement 上有一个追加/前置功能。问题是它目前还在试验阶段

为了在不从 TypeScript 中得到错误的情况下使用它,我将它用作任何¯\_(ツ)_/¯ (<any>myElement).append(otherElement)

于 2018-04-12T06:02:09.417 回答
0

Element.append()现在存在(自 2016 年以来)。如果 TypeScript 发现错误:

  • 类型:确保它是一个Element而不仅仅是一个Node
  • 配置:确保您正在加载 DOM 库
  • 配置:确保您使用的是最新的 ES 目标/库

示例配置:

{
  "compilerOptions": {
    "target": "es2020",
    "lib": ["dom", "es2019", "es2020", "dom.iterable"]
  }
}
于 2021-06-24T04:55:04.223 回答