【问题标题】:Binding on angular-meteor components绑定 angular-metor 组件
【发布时间】:2017-05-16 04:22:35
【问题描述】:

当我尝试按照教程进行操作时,在 using-and-creating-angularjs-pipes 页面中,this.helpers 不起作用,因为它仅在绑定发生之前运行。

我不知道这是教程中的错误还是教程编写后发生的变化。

当我尝试在 this.helpers 函数中执行 console.info(binding property) 时,结果未定义。 当我在 $onInit 中执行相同的 console.info 时,它正在工作。

我怎样才能让它工作?

代码基于教程中的代码,https://angular-meteor.com/tutorials/socially/angular1/using-and-creating-angularjs-pipes

class PartyCreator{
    constructor($scope){
        'ngInject';
        $scope.viewModel(this);
        this.subscribe('users');

        this.helpers({
            creator: ()=> {
                console.info(this.party) //returns undefined
                if(!this.party){
                    return '';
                }
                const owner = this.party.owner;
                if(Meteor.userId() !== null && owner === Meteor.userId()) {
                    return 'me';
                }

                return Meteor.users.findOne(owner) || 'nobody';
            }
        })
    }


    $onInit(){
        console.info(this.party) //returns valid party object
    }
}

【问题讨论】:

  • 你还没有订阅派对

标签: javascript angularjs meteor angular-meteor


【解决方案1】:

帮助程序运行多次,基本上是每次数据更改或启用订阅时。您的代码应该考虑到没有返回数据的可能性(通常是第一次)。

已经存在处理这种情况的代码:

       if(!this.party){
            return '';
        }

当它再次运行时,它通常会给你你所期望的

【讨论】:

    猜你喜欢
    • 2017-05-24
    • 2016-09-10
    • 1970-01-01
    • 2019-07-14
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多