2015-11-30 52 views
0

我正在使用流星角度,我得到了這個控制檯的錯誤,內容如下:Uncaught TypeError: Cannot read property 'push' of undefined我似乎無法找到任何有關如何解決此問題的文檔。有誰知道我可以如何解決這個推送錯誤的根源?Meteor-Angular - 推送錯誤

HTML

<form> 

    <label>Email</label> 
    <input ng-model="newResonance.email"> 

    <button ng-click="resonance.push(newResonance); newResonance='';">Add</button> 
    </form> 

ClientControllerJS

(function() { 
    'use strict'; 

    angular.module('resonance').controller('HomeCtrl', HomeCtrl); 

    HomeCtrl.$inject = ['$scope', '$meteor']; 

    function HomeCtrl($scope, $meteor) { 

    $scope.resonance = $meteor.collection(Resonance); 

    $scope.remove = function(resonance){ 
     $scope.resonance.remove(resonance); 
    }; 

    $scope.removeAll = function() { 
     $scope.resonance.remove(); 
    }; 

    }; 

})(); 

ServerJS

Meteor.startup(function() { 

    Resonance.before.insert(function(userId, doc){ 

     doc.createdAt = new Date(); 

    }); 

    if (Resonance.find().count() === 0) { 

    for (var i = 0; i < resonance.length; i++) 

     Resonance.insert({ email: resonance[i].email }); 

    } 
}); 
+0

這是怎麼回事,因爲'resonance'是在HTML的範圍不確定'<按鈕NG點擊=「resonance.push(newResonance); newResonance ='';'>'你可能會更好地處理按鈕,即使在模板事件處理程序中。 –

+0

好吧,這很有道理@Michael Floyd。我對Angular更新,想知道如何才能將它放入事件處理程序? –

+0

我還沒有學過流星的角度,但:(我認爲答案是某處[在這裏](http://ng-meteor.meteor.com/tutorials/angular1/adding-removing-objects-and-angular - 事件處理)看起來你在正確的軌道上,但有一個缺少的細節。 –

回答

0

我改變解決了這個問題在 <button ng-click="resonance.push(newResonance); newResonance='';">Add</button>

<button ng-click="resonance.save(newResonance); newResonance='';">Add</button>