angular-meteor 1.3 $meteor.object 新方式

angular-meteor 1.3 $meteor.object the new way

我可能遗漏了一些东西,但我尝试在我的变量 modifTrib 中没有 $stateParams 的情况下反应性地访问我的 mongo 集合 Tribunaux 中的单个文档。单击按钮时,我得到了 tribunalId 字段。因此,在我单击之前,我的控制器中的变量为空。

这是我所做的:

angular
    .module('app')
    .controller('tribunauxController', tribunauxController);

tribunauxController.$inject = ['$scope', '$reactive', '$mdDialog'];

function tribunauxController($scope, $reactive, $mdDialog)
{
    $reactive(this).attach($scope);
    var vm = this;
    vm.TribunalModify = TribunalModify;
    vm.tribunalId = null;


     vm.helpers({
        tribunaux: () => {
            return Tribunaux.find({});
        }
    });

    vm.helpers({
        modifTrib () {
            return Tribunaux.findOne(tribunalId);
        }
    });


    function TribunalModify(tribId){
        vm.tribunalId = tribId;
    }                                                                    }

我无法让它工作。

需要一点帮助谢谢!

更新:这是我 HTML

中有趣的部分
<md-list-item class="md-2-line" ng-click="vm.TribunalModify(tribunal._id)"
                              ng-repeat="tribunal in vm.tribunaux">
        <div class="md-list-item-text">
            <h3>Tribunal d'instance de {{tribunal.label}}</h3>
            <p>{{tribunal.address}}</p>
        </div>
</md-list-item>

您可以更改两件事:

  1. helpers 合并到一个助手定义中(我认为它看起来更好)
  2. tribunalId 必须是被动的才能使助手重新 运行。有几种方法可以做到这一点(我们只是在这里讨论它:https://github.com/Urigo/angular-meteor/issues/955)但是现在,最简单的方法是像这样使用 getReactively

    return Tribunaux.findOne(getReactively("tribunalId"));