我正在努力学习Angular 2.
我想使用@ViewChild Annotation 从父组件访问子组件.
这里有一些代码行:
在BodyContent.ts我有:
import {ViewChild, Component, Injectable} from 'angular2/core';
import {FilterTiles} from '../Components/FilterTiles/FilterTiles';
@Component({
selector: 'ico-body-content'
, templateUrl: 'App/Pages/Filters/BodyContent/BodyContent.html'
, directives: [FilterTiles]
})
export class BodyContent {
@ViewChild(FilterTiles) ft:FilterTiles;
public onClickSidebar(clickedElement: string) {
console.log(this.ft);
var startingFilter = {
title: 'cognomi',
values: [
'griffin'
, 'simpson'
]}
this.ft.tiles.push(startingFilter);
}
}
Run Code Online (Sandbox Code Playgroud)
而在FilterTiles.ts中:
import {Component} from 'angular2/core';
@Component({
selector: 'ico-filter-tiles'
,templateUrl: 'App/Pages/Filters/Components/FilterTiles/FilterTiles.html'
})
export class FilterTiles {
public tiles = [];
public constructor(){};
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用jQuery插件替换Angular 2中某些动态元素中的默认滚动条.
这些元素是使用ngFor循环创建的,也就是说我无法将jQuery事件附加到创建的元素上.
在某些时候,应用程序Observable会变换一个ngFor在其中循环的对象,以便呈现视图.
现在,我想知道Angular何时完成绘制我的元素,以便我可以运行jQuery插件.
ngAfterViewInit,因为这个钩子被激发了太多次我通过使用以下自定义找到了一个解决方案Pipe:在ngFor模板的循环结束时,我写道:
{{i | FireStoreEventPipe:'EVENT_TO_BE_FIRED'}}
Run Code Online (Sandbox Code Playgroud)
在哪里FireStoreEventPipe是这样的:
transform(obj: any, args:any[]) {
var event = args[0];
//Fire event
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是这个解决方案并不能让我满意.
有什么更好的方法吗?
谢谢