2017-08-30 4 views
0

tout ce que je veux pour filtrer les éléments comme (Date de début et de fin) qui sont basés sur invoice_date en utilisant la fonctionnalité de plage de dates dans l'application meanjs.Comment résoudre moment erreur non définie dans Angularjs?

  • Mon problème est la fonction de filtre de date fonctionnent parfaitement dans plunker and my localHost production mais tout en poussant vers le serveur il est montrant que jusqu'à May month données de si une date de valeurs invoice_date est été `24/08/2017 et 27/07/2017 'ces données ne sont pas affichées dans la table, je ne sais pas où j'ai fait l'erreur et ce que je l'ai manqué .....

  • S'il vous plaît regarder à mon plunker pour référence.

  • J'ai affichage invoice_date, donc c'est le champ que je veux utiliser pour le filtrage.

  • Alors ce que je recherche exactement, je veux faire un filtrage du invoice_date comme date de début et de fin: par exemple: - si nous choisissons la date de début comme 24-05-2017 et la date de fin est 24-08-2017 dans le tableau de cette deux transactions seulement besoin pour afficher ou filtrer ... donc j'ai utilisé le filtre de plage de dates pour réaliser cette solution, mais dans le serveur cela ne fonctionne pas pour nous s'il vous plaît aider.

  • Dans mon serveur si je sélectionne end date comme la date d'aujourd'hui toutes les données de montrent des signes sur la table, donc je pense que le problème est basé sur ces champs $scope.from = new Date(2014, 04, 30); $scope.to = new Date(2019, 08, 25);

  • enter image description here dans le terminal cette erreur se produit si nous résolvons cette erreur va certainement obtenir la solution, je l'ai essayé moi-même mais je ne peux pas résoudre ce problème ... alors s'il vous plaît aider à résoudre ce problème.

Controller:

.filter('dateRange', function() { 
    return function(records, dateKey, from, to) { 
     return records.filter(function(record) { 
      return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from)) 
      && !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to)); 
     }); 
    }; 
}) 

HTML:

<input type="date" class="form-control" name="from" ng-model="from"> 

<input type="date" class="form-control" name="to" ng-model="to"> 

Filtre: -

ng-repeat="data in record | dateRange : 'invoice_date' : from : to" 
  • J'ai créé plunker pour référence: - My plunker
+0

Je ne peux pas reproduire votre erreur. Cependant, ce que j'ai remarqué, c'est que la référence de script ng a pris une éternité à charger. Vous pouvez également utiliser un lien 'cdnjs.cloudflare' pour cela. – 82Tuskers

+0

Je ne vois pas où vous injectez moment? – rrd

+0

Merci pour le commentaire, j'ai utilisé ce 'https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js', seulement dans mon projet ... mais encore l'écran ci-dessus erreur de tir montre ... s'il vous plaît aidez-moi merci pour l'avance –

Répondre

0

Je pense que vous avez manqué de configurer & injectez dans votre module.S'il vous plaît utiliser l'extrait étapes de here

  1. d'abord installer la bibliothèque moment en utilisant charmille

    bower install angular-moment --save

  2. comprennent ensuite les éléments suivants:

    moment.js & angular-moment.js

  3. Confi gurer dans votre module comme celui-ci

    var myapp = angular.module('myapp', ['angularMoment']);

    utilisation dans votre contrôleur comme comme

    angular.module('fooApp') .controller('FooCtrl', ['$scope', 'moment', function ($scope, moment) { $scope.exampleDate = moment().hour(8).minute(0).second(0).toDate(); }]);

+0

merci pour une réponse précieuse va vérifier et vous mettre à jour ... –

0

Problèmes avec données de filtrage sont souvent causés par les fuseaux horaires.

Essayez d'ajouter .format('YYYY-MM-DD') au filtre, donc par exemple:

.filter('dateRange', function() { 
    return function(records, dateKey, from, to) { 
     return records.filter(function(record) { 
      return !moment(record[dateKey], 'YYYY-MM-DD').isBefore(moment(from).format('YYYY-MM-DD')) 
      && !moment(record[dateKey], 'YYYY-MM-DD').isAfter(moment(to).format('YYYY-MM-DD')); 
     }); 
    }; 
}) 
+0

encore une fois montrant le même problème comme le «moment n'est pas défini», –

+0

Pour le moment n'est pas défini 'vous devez suivre les astuces @Thabung (installez le moment et injectez dans les dépendances du module) –