绑定角度流星组件

时间:2017-01-02 01:07:25

标签: javascript angularjs meteor angular-meteor

虽然我试图按照教程,在using-and-creating-angularjs-pipes页面中,但是this.helpers不起作用,因为它只在绑定发生之前运行。

我不知道教程中是否有错误或者在编写教程后发生了变化。

当我尝试在this.helpers函数中执行console.info(绑定属性)时,结果是未定义的。 当我在$ 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
    }
}

1 个答案:

答案 0 :(得分:0)

Helper多次运行,基本上每次数据更改或启用订阅时都会运行。您的代码应该允许不返回任何数据(通常是第一次)。

已经存在处理此案例的代码:

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

当它再次运行时,通常会给你你想要的东西