Angular Meteor $反对vs getReactively

时间:2016-01-29 20:42:10

标签: javascript angularjs meteor reactive-programming angular-meteor

我正在学习Angular Meteor,我有一个问题:

使用$ reactive和getReactively有什么区别?

如果您查看API参考,您可以获得$ reactive(http://www.angular-meteor.com/api/1.3.2/reactive):

  

一项服务,负责处理Meteor数据的反应性,并更新您的AngularJS代码。

     

此服务包装上下文(可与此或$ scope一起使用) - 因此您可以根据需要将其用于任何上下文

这对于getReactively(http://www.angular-meteor.com/api/1.3.2/get-reactively):

  

使用此方法获取上下文变量并以反应方式观察它,因此每次更改此变量都会导致依赖项(自动运行,辅助函数和预订)再次运行。

     

getReactively方法是ReactiveContext的一部分,可用于每个上下文和$ scope。

据我所知,$ reactive会让所有事情都变得有反应(只要你把它应用到他们身上,这个' $' $范围'和儿子就会开启)并且getReactively会做出反应只有那个特定的变量或对象反应。

所以,如果我这样做:

    controller: function ($scope, $reactive) {
        var vm = $reactive(this).attach($scope);
        vm.sort = {
            name: 1
        };

        this.helpers({
            parties: () => {          
                return Parties.find({}, { sort : vm.sort });
            }
        });

        this.subscribe('parties', () => {
            return [{
                sort: vm.sort
               },
               this.getReactively('searchText')
            ]
        });
    });

为什么我没有得到与我这样做相同的结果:

    controller: function ($scope, $reactive) {
        var vm = $reactive(this).attach($scope);
        vm.sort = {
            name: 1
        };

        this.helpers({
            parties: () => {          
                return Parties.find({}, { sort : this.getReactively('sort') });
            }
        });

        this.subscribe('parties', () => {
            return [{
                sort: this.getReactively('sort')
               },
               this.getReactively('searchText')
            ]
        });
    });

如果$ reactive负责反应,我希望看到这个和$ scope内的任何内容都是被动的,就像在getReactively中一样,每当有什么变化时,都会让它的家属再次运行。

那么:我错过了什么?

0 个答案:

没有答案