Angular 在使用 jq 追加方法时是否编译指令
Is Angular compiling a directive when using the jq append method?
我一直在使用$compile服务来动态注入元素,但只是被一些意想不到的东西打败了。所以,这是我过去注入指令的方式:
angular
.module('app', [])
.directive('test', function () {
return {
restrict: 'E',
controller: function () {
console.log('hey, just got compiled!')
}
}
})
.run(function ($compile, $rootScope) {
var $scope = $rootScope.$new()
var directive = $compile('<test></test>')($scope)
var app = angular.element(document.querySelector('[ng-app]'))
app.append(directive)
})
在这个小提琴中,您可以看到该指令似乎被编译了两次。所以我删除了$compile技巧,它工作得很好,该指令编译一次:
angular
.module('app', [])
.directive('test', function () {
return {
restrict: 'E',
controller: function () {
console.log('hey, just got compiled!')
}
}
})
.run(function ($compile, $rootScope) {
var app = angular.element(document.querySelector('[ng-app]'))
app.append('<test></test>')
})
小提琴
那么,.append
在编制指令吗?
我有点困惑,因为我总是将第一个版本视为推荐版本,并且在 jqLike 的"append"实现中找不到与编译相关的任何内容。
这是因为run
阶段发生在第一次编译 DOM 之前。它与使用append()
此用例不需要您在run()
中使用的$compile
。
相关文章:
- 浏览器是否持久缓存脚本元素的编译版本
- 是否可以使用有角度的HTML文档进行$编译
- V8 javascript 引擎是否将所有 javascript 编译为机器语言
- Webpack:是否可以在编译时评估javascript表达式
- IE11是否删除了javascript条件编译
- JavaScript是否在每次调用函数时都对其进行编译
- Angular 在使用 jq 追加方法时是否编译指令
- 编译到 javascript 是否排除了 dart 添加弱引用
- AngularJS - 是否可以在链接或编译中的指令上更改ngModel属性的值
- 是否可以将车把模板编译为 html
- 是否可以将角度模板编译为最终的 html 字符串
- 如何识别 js 是否是闭包编译的
- 在CoffeeScript中,是否存在一个'官方'在运行时而不是编译时插入字符串的方法
- AngularJS-是否可以从代码中编译和链接模板
- AngularJS:TypeScript编译过程并吞噬uglify-是否有一种方法可以强制TS使用IIFE生成函数而不是
- 是否有可编译到javascript的lisp
- nodejs/V8是否将编译后的机器码存储在磁盘上的任何地方?
- Java Scripting (jsr223):是否可以(重新)添加rhino编译功能?
- JavaScript在Web浏览器环境中执行时是否被编译为机器码
- 在babel编译时是否有方法注入或忽略全局变量?