绑定到ngModel的Meteor对象属性不会更新

时间:2015-12-10 11:34:25

标签: meteor angular-meteor

我刚刚更新到Angular-Meteor 1.3.0,并根据their tutorial更新了我的代码,因为旧方法已被弃用。修改代码后,不再保存对模型的更改。事实上,他们甚至没有被送回服务器,我检查了插座。

请注意,当我加载页面时,输入字段会填充正确的值。任何更改都会被忽略。如果我离开并返回,该字段将具有先前的值。它就像数据绑定被破坏或仅单向一样。我有以下代码(为简洁起见而简化)。

查看:

<div ng-controller="GoalDetailsCtrl as ctrl">
    <input type="text" ng-model="ctrl.goal.label"/>
</div>

控制器:

angular.module('myapp').directive('goalDetails', function() {
    return {
        restrict: 'E',
        templateUrl: 'client/components/goals/views/goal-details.html',
        controllerAs: 'goalDetails',
        controller: 'GoalDetailsCtrl'
    }
}).controller('GoalDetailsCtrl', function($scope, $stateParams, $reactive) {
    $reactive(this).attach($scope);
    let reactiveContext = $reactive(this).attach($scope);

    reactiveContext.subscribe('goals');

    reactiveContext.helpers({
        goal: () => Goals.findOne({ _id: $stateParams.goalId }),
        otherGoals: () => Goals.find({ _id: { $not: $stateParams.goalId } })
    });
});

型号:

Goals = new Mongo.Collection('goals');

// authorization logic
Goals.allow({
    insert: function (userId, goal) {
        return true;
    },
    update: function (userId, goal, fields, modifier) {
        return true;
    },
    remove: function (userId, goal) {
        return true;
    }
});

1 个答案:

答案 0 :(得分:0)

显然,一个功能已经被禁止了#autobind&#39;被删除,解释了为什么我有这种行为。