2016-08-18 23 views
1

ディレクティブで値を取得しようとしていますが、これはmodel.Itによって渡されますが、コントローラの値は出力されますが、ディレクティブでは未定義です。 コードスニペットを添付してください。間違っている箇所を更新してください。 ありがとうございました!ディレクティブの値が定義されていません

A)MODELで日付&時刻入力タイプ -

// DATE-PICKER

<div class="todo-details-inline"> 
    <span class="todo-header">Due date</span> 
    <input type="text" 
      ng-model="vm.task.end_date" 
      top="45" name="endDate" 
      class="nc-input" 
      pickadate-picker date-input-format> 
</div> 

// TIME-PICKER

<div style="margin-left:10%;" class="todo-details-inline"> 
    <input ng-model="vm.task.end_time" 
      name="endTime" 
      time-input-format 
      time-picker 
      taskEndDate="vm.endDate" 
      placeholder="End Time" 
      class="nc-input"> 
</div> 

B)vm.endDateコントローラーで設定する

ページのロードの

//

vm.endDate = vm.task.end_date; 
logger.info('in activate,vm.endDate:'+vm.endDate); // prints correct value 

//時計

- ヴァルには、更新

vm.endDate = vm.task.end_date; 
console.log("updated vm.endDate:"+vm.endDate); // prints correct value 

C)ディレクティブで

angular 
.module('app.layout') 
.directive('timePicker', timePicker); 

function timePicker($timeout) { 
    var directive = { 
     require: 'ngModel', 
     scope: { 
      from: '=', 
      to: '@', 
      format: '@', 
      min: '=', 
      initialTime: '=', 
      selectTime: '=', 
      taskEndDate:'=' 
     }, 
     link: function($scope, $element, $attrs, ctrl) { 
      // OTHER CODE  

      $scope.$watch("taskEndDate", function(value) { 
      console.log("taskEndDate value:"+value); // UNDEFINED ?? 
      if (value) { 
       // FURTHER OPRTNs 
      } 
      } 
     } 
    }; 
} 

答えて

1

それを見て前にtaskEndValueのローカルコピーを保管してください...実際に価値を得る前に、渡された値を見ていることがあります。

$scope.endDate = $scope.taskEndDate; 
$scope.$watch("endDate", function(value) { 
    console.log("taskEndDate value:"+value); 
    if (value) { 
      .... 
    } 
}); 

あなたのリンクのローカル変数を見てください。

入力タグのtaskEndDateは大文字小文字の区別がありますが間違っています。

<input ng-model="vm.task.end_time" 
      name="endTime" 
      time-input-format 
      time-picker 
      task-end-date="vm.endDate" 
      placeholder="End Time" 
      class="nc-input"> 
+0

ありがとうございましたThalaivar :)主な問題は入力タグのtaskEndDateで、作業終了日が修正されました。 – Kishor

関連する問題