显示重复值

时间:2017-05-31 16:21:16

标签: javascript angularjs

我有一个下拉列表,其中显示日期: -

<label>Date:</label>
   <select data-ng-model="date" name="viewDate" data-ng-options="d for d in newDates" data-ng-change="selectDate(date)" required="required">
        <option value="">Please Select</option>
   </select>

指令代码: -

scope.getDates = function () {
     scope.newDates = [];
    ApiServices.getAllDates().then(
        function (response) {
          scope.dates = response.data;
              scope.dates.forEach(function (entry,index) {    
                  entry = moment(entry).format('YYYY-MM-DD');
                  scope.newDates.push(entry);
        });
     if (scope.dates.length) {
           scope.noRecords = false;
    } else {
          scope.noRecords = true;
     }
  },
   function (err) {
      // Handle error here
    console.log('Error' + JSON.stringify(err.data));
     });
  };

随着日期即将来临,我试图以人类可读的形式转换它。但是每个条目的值都显示重复。我认为我为转换epoch ino字符串而编写的代码是错误的。任何人都可以告诉我我的错误。

3 个答案:

答案 0 :(得分:2)

这是我尝试过的解决方案及其工作方式。现在没有重复的值。

    scope.getDates = function () {
         scope.newDates = new Set();
        ApiServices.getAllDates().then(
            function (response) {
              scope.dates = response.data;
                 scope.dates.forEach(function (entry,index) { 
                    scope.newDates = scope.dates.map(function(entry){
                        entry = moment(entry).format('YYYY-MM-DD');
                             return entry;
                     });
                });
         if (scope.dates.length) {
               scope.noRecords = false;
        } else {
              scope.noRecords = true;
         }
      },
       function (err) {
          // Handle error here
        console.log('Error' + JSON.stringify(err.data));
         });
      };

答案 1 :(得分:1)

如果您不想要重复的值,则可以创建一个集合而不是列表。

scope.getDates = function () {
     scope.newDates = new Set();
    ApiServices.getAllDates().then(
        function (response) {
          scope.dates = response.data;
              scope.dates.forEach(function (entry,index) {    
                  entry = moment(entry, 'YYYY-MM-DD').format();
                  scope.newDates.add(entry);
        });
     if (scope.dates.length) {
           scope.noRecords = false;
    } else {
          scope.noRecords = true;
     }
  },
   function (err) {
      // Handle error here
    console.log('Error' + JSON.stringify(err.data));
     });
  };

答案 2 :(得分:0)

scope.getDates = function () {
  $scope.humanizedDates = [];
  ApiServices.getAllDates().then(
    function (response) {
      if (response.data.length) {
        $scope.humanizedDates = response.data.map(function(date){
          return moment(date).format('YYYY-MM-DD');
        });
        scope.noRecords = false;
      } else {
        scope.noRecords = true;
      }
    },
    function (err) {
      // Handle error here
      console.log('Error' + JSON.stringify(err.data));
    });
};