功能不会被响应数据

时间:2017-03-20 13:53:13

标签: javascript angularjs

您好,我遇到了一个奇怪的问题......我失去了差不多2小时,我不知道它为什么不起作用。

它应该对每个部门的所有值求和,其中username = name由select选择,而date = date由datepicker选择。

它在jsFiddle上效果很好,但是当我尝试将其与响应数据一起使用时,它不起作用,并且在控制台中没有任何错误。

我做错了什么?这是我的应用程序中的代码与jsFiddle

中的代码不同

HTML:

<div layout="row">
  <md-datepicker ng-model="myDateUser" md-placeholder="Enter date"></md-datepicker>
           {{myDateUser}}
           <md-input-container flex="50">
               <label for="repeatSelect"> Select user: </label>
               <md-select ng-model="data.model" ng-change="sum(data.model)">
                     <md-option ng-value="logins.name" ng-repeat="logins in chooseLogins">{{logins.name}}</md-option>
               </md-select>
           </md-input-container>
           <br/>
           <hr/>
           <tt>{{data.model}}</tt>
         </div>
  <md-table-container>
    <table md-table>
      <thead md-head>
        <tr md-row>
          <th md-column>Dept</th>
          <th md-column>Total time</th>
          <th md-column></th>
        </tr>
      </thead>
      <tbody md-body>
        <tr ng-if="!data.model" md-row md-select="test" md-on-select="" md-auto-select ng-repeat="test in tests">
          <td md-cell>{{ test.dept }}</td>
          <td md-cell>{{ test.total }}</td>
          <td md-cell></td>
        </tr>

        <tr ng-if="data.model" md-row md-select="test" md-on-select="" md-auto-select ng-repeat="(key,val) in data.model">
          <td md-cell>{{ key }}</td>
          <td md-cell>{{ val }}</td>
          <td md-cell></td>
        </tr>
      </tbody>
    </table>
  </md-table-container>

JS:

function getTotalTime() {
      $http.get('db_files/totalTimeDB.php').then(function(response) {
      $scope.data = response.data;
              $scope.sum = function(name) {

                        let model = $scope.data.filter(function(item) {
                            return (item.username == name && TheDate(item))
                        });

                        let tests = {};
                        model.forEach(function(item) {
                            if (!tests.hasOwnProperty(item.dept)) {
                                tests[item.dept] = 0;
                            }
                            tests[item.dept] += parseFloat(item.task_time);
                        });
                        $scope.data.model = tests;
                    }
                    function TheDate(item){
                      if($scope.myDateUser){
                        var myDateUser = new Date($scope.myDateUser);
                        var itemDate = new Date(item.task_end);
                        console.log("task_end " + item.task_end);
                        console.log("myDate " + $scope.myDateUser);

                        if(myDateUser.getFullYear() != itemDate.getFullYear() || myDateUser.getMonth() != itemDate.getMonth()){
                          return false;
                        }
                      }
                        return true
                    }

$scope.data = response.data;

中的console.log示例
Object
dept:"Test2"
status:"Closed"
task:"test test test"
task_end:"2016-09-02"
task_start:"2016-09-02"
task_time:"80"
username:"Nelson"
__proto__:Object

它的作用类似于show total sum,其中username =选择的名称和TheDate函数被忽略。 console.log也没有显示任何内容(例如jsFiddle console.log显示选定的日期和名称) 看起来这个函数没有被调用。

0 个答案:

没有答案