Angular2:如何用Javascript从index.html中访问DOM-Element(在Component内部
Angular2: How to access DOM-Element (inside Component) from index.html with Javascript
我正试图在我的第一个Angular2-Project (Typescript)中实现伟大的PhotoSwipe-gallery (JavaScript),这真的让我很头疼。
PhotoSwipe是用JavaScript写的。通过它的实例化,它访问一个由类名'my-gallery'标记的特定dom元素,并解析所有明显包含图像数据的子元素。
这是我想要达到的一个非常简单的版本:
index . html
<body>
<my-app>
<router-outlet></router-outlet>
<my-images>
<div class="my-gallery">
<-- images -->
</div>
</my-images>
<my-app>
<script>
<--Want Access to class 'gallery' -->
myGallery = document.querySelectorAll('my-gallery');
</script>
<body>
在上面的版本中myGallery是一个空对象,所以我想知道这是否有可能访问index.html中的元素,这些元素在Angular2的其他组件中。
另一个原因可能是,我实际上是通过http获取图像的。Get-request,所以也许脚本运行,在'my-gallery'加载之前,但尝试从index.html加载其他元素也失败了。
这是一个非常简化的版本。实际上,我正在运行一个实例化PhotoSwipe-object的脚本。当然,我已经尝试过直接从组件内部运行脚本,显然您不能在组件模板中运行javascript文件。
如果你想让你的内容在元素标签中,你需要在你的模板中插入一个ng-content
元素。
index . html
<body>
<my-app>
<router-outlet></router-outlet>
<my-images>
<div ref-myGallery class="my-gallery">
<-- images -->
</div>
</my-images>
<my-app>
<script>
<--Want Access to class 'gallery' -->
myGallery = document.querySelectorAll('my-gallery');
</script>
<body>
my-image.component.ts
import { Component, ContentChild, ElementRef, AfterContentInit } from '@angular/core';
@Component({
selector: 'my-images',
template: `<ng-content></ng-content>`,
})
export class MyImageComponent implements AfterContentInit {
@ContentChild('myGallery', { read: ElementRef }) myGalleryEl: ElementRef;
ngAfterContentInit() {
var myGallery = this.myGalleryEl.nativeElement;
}
}
相关文章:
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- 从popup.js|Chrome扩展访问DOM
- 如何在My chrome扩展中获取其他chrome扩展的DOM访问权限
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- HTML DOM - element.appendChild() 的行为不像我期望的那样
- JavaScript 函数 通过调用 Element 访问此内容
- HTML5 / Javascript - 使预加载的图像 DOM 可访问
- passing "this" dom element -jquerymobile, zend-
- querySelector 返回 String 而不是 DOM-Element
- ExtJs 6.0-Ext.dom.Element.query()-属性中的多个值-正确的选择器
- javascript元素/标记数组DOM节点访问
- Angular2:如何用Javascript从index.html中访问DOM-Element(在Component内部
- 在JQuery中添加之前,检查DOM Element是否自动存在
- 在DOM中访问对象中的对象
- DOM属性访问:为什么是"elt.class"不工作
- 跨域IFrame DOM属性访问从父's JavaScript
- 在使用$element.ech()时加快DOM访问速度
- Polymer.dom(element).innerHTML 不起作用
- 解析EXT .dom. buttonelement文件的EXT .dom. element依赖失败
- 在DOM中访问具有相同名称的多个项目