Angularjs$编译输入html或元素
Angularjs $compile input html or element
我正在阅读《使用AngularJS掌握Web应用程序开发》一书,在第220页上看到了以下代码:
var element = $compile('<button size="large"></button>')($rootScope)
但是,根据以下文件:http://docs.angularjs.org/guide/compiler,$compile函数需要angular.element(包装的html)输入。
纯html和angular元素都是$compile函数的有效输入吗(或者其中一个文档不正确)?
如果有疑问,请转到源代码
这总是的最佳选择
if (!($compileNodes instanceof jqLite)) {
// jquery always rewraps, whereas we need to preserve the original selector so that we can
// modify it.
$compileNodes = jqLite($compileNodes);
}
因此,如果它传递了除jqLite元素之外的任何东西,它就会将其封装在jqLite元件中。
这允许传递内容、jqLite元素或普通DOM元素。
如果您在源代码中找不到您要查找的内容,请进行测试
在这里,您可以在第88行中看到$compile
ingHTML文本:
element = $compile('<div></div>')($rootScope);
在这里你可以看到它$compile
通过jqLite元素
element = jqLite('<div>{{1+2}}</div>');
$compile(element)($rootScope);
如果您在规范中找不到,请转到文档
嗯?那不是医生!这就是消息来源,你骗了我!
根据我的经验,Angular在源代码中的文档比在线文档中的文档要好得多。文档是最新的,所有类型和用法都存在。这里要简单得多:
- @param{string|DOMElement}element要编译为模板函数的元素或HTML字符串
尽管在这种情况下docs.angularjs也做得不错,但导航时间更长。
仍然不在那里-你可以查看绝对类型
这是一堆TypeScript的类型定义。它很有用,因为它告诉你很好-类型:)
interface ICompileService {
(element: string, transclude?: ITemplateLinkingFunction, maxPriority?: number): ITemplateLinkingFunction;
(element: Element, transclude?: ITemplateLinkingFunction, maxPriority?: number): ITemplateLinkingFunction;
(element: JQuery, transclude?: ITemplateLinkingFunction, maxPriority?: number): ITemplateLinkingFunction;
}
正如你所看到的,这是我们在其他地方找到的三种选择。字符串、元素或JQuery(通常为lite)实例。
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML