首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角指令编译函数中的tElement是jQuery元素吗?

角指令编译函数中的tElement是jQuery元素吗?
EN

Stack Overflow用户
提问于 2016-02-19 15:48:01
回答 1查看 210关注 0票数 1

我正在研究另一个复制元素的指令练习:

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="utf-8">
  <title>Directive Lifecycle</title>
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.js"></script>
  <script src="main.js"></script>
</head>

<body ng-app="app">
  <double>
    <h1>Ask Jeebus</h1>
  </double>
</body>
</html>

JS

代码语言:javascript
运行
复制
var app = angular.module('app', []);
app.directive('double', function() {
    return {
        restrict: 'E',
        compile: function(tElement, attrs) {
            var content = tElement.children();
            tElement.append(content.clone());
            tElement.replaceWith(tElement.children());
        }
    }
});

函数.children()、.append和克隆似乎都来自于jQuery。我知道角提供了它自己的jQuerylite,它包含了jQuery的某些部分,这是tElement正在使用的吗?或者它使用了所有的jQuery。

作为一个附带的问题,为什么必须使用content.clone()?它并不只适用于tElement.append(内容),即使当我记录内容和content.clone()时,它们似乎是相同的h1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-19 15:52:58

这取决于加载jQuery API的时间。

如果jQuery是在角之前加载的,您将得到jQuery编译的DOM (首选方式),否则您将得到jQLite编译的DOM。

如果加载了jQuery后角,您可以直接访问jQuery API,您需要再次使用jQuery重新编译该元素,方法是将该元素封装在$函数中,如$(element)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35509292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档