在* ngFor中使用管道,页面有时会更新,有时不会

Hongbo Miao

我正在使用angular2-meteor,已经使用了pure: false但是管道有时会运行,有时则不会。有关该问题的详细信息,请参见代码中的注释。

谢谢

<div *ngFor="#user of (users|orderByStatus)">
    {{user.status.online}}
</div>


users:Mongo.Cursor<Meteor.User>;
ngOnInit()
{
    this.subscribe('users', () => {
        this.autorun(() => {
            this.users = Meteor.users.find();
        });
    }, true);
}

import {Pipe} from 'angular2/core';

@Pipe({
    name: 'orderByStatus',
    pure: false
})
export class OrderByStatusPipe {
    transform(usersCursor:Mongo.Cursor<Meteor.User>):Array<Meteor.User> {
        console.log("OrderByStatusPipe runs");

        // (1) If I only do these two lines, the change of other users' status can show on the screen immediately. 
        // let users = usersCursor.fetch();
        // return users;

        // (2) If sort users by status, the page sometimes updates, sometimes not when user status change.
        //  If not update automatically, I click that part of screen, it will update then.
        let users:Array<Meteor.User> = usersCursor.fetch();
        users.sort((a, b) => {
            return (a.status.online === b.status.online) ? 0 : (a.status.online ? -1 : 1);
        });
        return users;
    }
}
Hongbo Miao

更新:该错误似乎已修复

我认为问题与angular2-meteor有关。

最后sort,当您尝试从Mongo获取数据时,我找到了一种使用的工作方式因此,不再使用排序管道。

但是您不能users:Mongo.Cursor<Meteor.User>与* ngFor一起使用,需要fetch()先使用和Array<Meteor.User>,否则当列表顺序更改时,它将显示此错误:

无法读取未定义的属性“状态”

但是,该列表不会在UI中自动更新。所以你需要使用NgZone

所以最终的工作代码是这样的:

<div *ngFor="#user of users)">
    {{user.status.online}}
</div>


users:Array<Meteor.User>;  // here cannot use users:Mongo.Cursor<Meteor.User>
constructor(private _ngZone:NgZone) {}
ngOnInit()
{
    this.subscribe('users', () => {
        this.autorun(() => {
            this._ngZone.run(() => {
                this.users = Meteor.users.find().fetch();
            });
        });
    }, true);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么来自子进程的管道有时会中断,有时不会?

来自分类Dev

Ubuntu桌面有时会冻结

来自分类Dev

有时会显示异常TypeError警告,使用生成器的throw方法时有时不会显示

来自分类Dev

为什么`.asInstanceOf`有时会抛出,有时却不会抛出?

来自分类Dev

ItemGroup中的MSBuild通配符有时会扩展,有时不会扩展

来自分类Dev

有时会触发JS退格键按下事件,有时不会触发

来自分类Dev

numpy:索引太大,有时会出现异常,有时不会

来自分类Dev

为什么我有时会得到嵌入的属性有时不会?

来自分类Dev

Windows远程桌面有时会停止传输屏幕更新

来自分类Dev

有时会恢复,有时会结帐

来自分类Dev

为什么 x-terminal-emulator 有时会在启动时退出,有时不会?

来自分类Dev

当我不断刷新我的angularJS页面时,有时会显示内容,有时却不显示

来自分类Dev

F#和自动转换:有时会,有时不会,其背后的原理是什么?

来自分类Dev

为什么滚动条有时会显示在 Chrome 扩展中有时不会显示

来自分类Dev

有时会显示异常TypeError警告,使用生成器的throw方法时有时不会显示异常

来自分类Dev

为什么浏览器有时会在进入HTTPS页面时要求确认?

来自分类Dev

Angular Js - 在页面刷新时选择下拉列表有时会变空,为什么?

来自分类Dev

在 Promise 函数中使用 Update 方法时,Mongoose 有时会跳过向数据库添加数据

来自分类Dev

滚动时Android Studio有时会滞后

来自分类Dev

KDE 有时会在唤醒时出现故障

来自分类Dev

引导时,有时会显示“ No bootable device ...”,有时它可以工作

来自分类Dev

使用ASP.NET状态服务进行会话有时会给页面打乱

来自分类Dev

互联网有时会随机弹出并且无法再使用(某些页面除外)

来自分类Dev

当使用协同作用时,有时会滞后

来自分类Dev

为什么在方法中使用require_once有时会失败?

来自分类Dev

Redis blpop有时会返回元组,有时不是吗?

来自分类Dev

为什么AS有时会接受大位移而有时却不接受?

来自分类Dev

木偶:抓取有时可行,有时会因TypeError失败

来自分类Dev

为什么Ruby Procs有时会返回而有时却是错误?

Related 相关文章

  1. 1

    为什么来自子进程的管道有时会中断,有时不会?

  2. 2

    Ubuntu桌面有时会冻结

  3. 3

    有时会显示异常TypeError警告,使用生成器的throw方法时有时不会显示

  4. 4

    为什么`.asInstanceOf`有时会抛出,有时却不会抛出?

  5. 5

    ItemGroup中的MSBuild通配符有时会扩展,有时不会扩展

  6. 6

    有时会触发JS退格键按下事件,有时不会触发

  7. 7

    numpy:索引太大,有时会出现异常,有时不会

  8. 8

    为什么我有时会得到嵌入的属性有时不会?

  9. 9

    Windows远程桌面有时会停止传输屏幕更新

  10. 10

    有时会恢复,有时会结帐

  11. 11

    为什么 x-terminal-emulator 有时会在启动时退出,有时不会?

  12. 12

    当我不断刷新我的angularJS页面时,有时会显示内容,有时却不显示

  13. 13

    F#和自动转换:有时会,有时不会,其背后的原理是什么?

  14. 14

    为什么滚动条有时会显示在 Chrome 扩展中有时不会显示

  15. 15

    有时会显示异常TypeError警告,使用生成器的throw方法时有时不会显示异常

  16. 16

    为什么浏览器有时会在进入HTTPS页面时要求确认?

  17. 17

    Angular Js - 在页面刷新时选择下拉列表有时会变空,为什么?

  18. 18

    在 Promise 函数中使用 Update 方法时,Mongoose 有时会跳过向数据库添加数据

  19. 19

    滚动时Android Studio有时会滞后

  20. 20

    KDE 有时会在唤醒时出现故障

  21. 21

    引导时,有时会显示“ No bootable device ...”,有时它可以工作

  22. 22

    使用ASP.NET状态服务进行会话有时会给页面打乱

  23. 23

    互联网有时会随机弹出并且无法再使用(某些页面除外)

  24. 24

    当使用协同作用时,有时会滞后

  25. 25

    为什么在方法中使用require_once有时会失败?

  26. 26

    Redis blpop有时会返回元组,有时不是吗?

  27. 27

    为什么AS有时会接受大位移而有时却不接受?

  28. 28

    木偶:抓取有时可行,有时会因TypeError失败

  29. 29

    为什么Ruby Procs有时会返回而有时却是错误?

热门标签

归档