2016-05-24 9 views
2

私のアプリケーションには、タイムピッカーとdaypickerがあります。これらの値を別のオブジェクトに渡す必要があります。ただし、時間/日付入力が空であるため、オブジェクトはページ・ロード時に未定義に戻ります。ページ読み込み後の値の受け渡し

 $scope.startTime = function() { 
      $scope.time = $filter('date')($scope.time, 'HH:mm:ss'); 
      $rootScope.time = $scope.time; 
      console.log($rootScope.time); 
     } 

     $scope.startDate = function() { 
      $scope.dateStart = $filter('date')($scope.dateStart, 'yyyy-MM-dd'); 
      $rootScope.startDate = $scope.dateStart; 
      console.log($rootScope.startDate); 
     } 

     $scope.endDate = function() { 
      $scope.dateEnd = $filter('date')($scope.dateEnd, 'yyyy-MM-dd'); 
      $rootScope.endDate = $scope.dateEnd; 
      console.log($rootScope.endDate); 
     } 

     $scope.selectedDay = function() { 
     $rootScope.day = $scope.day; 
     console.log($rootScope.day); 

      } 

更新された値を必要とする対象:だから私の質問は、私は、時間と日付ピッカーのための未定義一度時間/日付の選択が行われたオブジェクトの値..

コードを更新することができる方法であります:

   $rootScope.schedule = { 
       "@": { 
       "let_run": "yes", 
       "when_holiday": "ignore_holiday", 
       // "begin":"06:30", 
       "begin": $rootScope.time, 
      }, 
       "weekdays": { 

       "day": { 
        "@": { 
        "day": $rootScope.day 
        // "day":"0" 
       } 
       } 

       } 
      }; 
      console.log($rootScope.schedule); 
+1

実際のオブジェクトプロパティ自体を更新する必要があります。プリミティブ '$ rootScope.time'に新しい値を代入すると、その変数を既に使用している場所は更新されません – charlietfl

+0

返信ありがとうございます。それは問題です。ポストメソッドのパラメータとしてのみ使用されるため、このオブジェクトをどのように更新することができるかはわかりません。 $ watcherや$ applyが行くルートになりますか? – Heather

答えて

1

は、私は、関数の各スケジュールオブジェクトを更新することにより、この問題決意することができました。

$scope.startTime = function() { 
      $scope.time = $filter('date')($scope.time, 'HH:mm:ss'); 
      $rootScope.time = $scope.time; 
      $rootScope.schedule['@'].begin = $rootScope.time; 
      console.log($rootScope.time); 
     } 
関連する問題