Я использую meteor-angular, и я получил эту консольную ошибку, которая гласит: Uncaught TypeError: Cannot read property 'push' of undefined
Кажется, я не могу найти какую-либо документацию о том, как это решить. Кто-нибудь знает, как я могу найти корень этой push-ошибки?
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 });
}
});
Я решил эту проблему, изменив <button ng-click="resonance.push(newResonance); newResonance='';">Add</button>
в
<button ng-click="resonance.save(newResonance); newResonance='';">Add</button>
resonance
не определен в области действия вашего html<button ng-click="resonance.push(newResonance); newResonance='';">
вам может быть лучше обрабатывать кнопку даже в обработчике событий шаблона.