小编And*_*nti的帖子

Angular 2 @ViewChild注释返回undefined

我正在努力学习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)

typescript angular

203
推荐指数
10
解决办法
17万
查看次数

ngFor之后的Angular 2火灾事件

我正在尝试使用jQuery插件替换Angular 2中某些动态元素中的默认滚动条.

这些元素是使用ngFor循环创建的,也就是说我无法将jQuery事件附加到创建的元素上.

在某些时候,应用程序Observable会变换一个ngFor在其中循环的对象,以便呈现视图.

现在,我想知道Angular何时完成绘制我的元素,以便我可以运行jQuery插件.

  • 我不想在HTML模板中包含任何javascript.
  • 我不想使用ngAfterViewInit,因为这个钩子被激发了太多次
  • 我不想实现基于setTimeout的解决方案(我认为它不可靠)

我通过使用以下自定义找到了一个解决方案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)

但是这个解决方案并不能让我满意.

有什么更好的方法吗?

谢谢

javascript jquery typescript ngfor angular

5
推荐指数
1
解决办法
6008
查看次数

标签 统计

angular ×2

typescript ×2

javascript ×1

jquery ×1

ngfor ×1