1

角モーメントピッカー用のカスタムラッパー指令があります。私はcutromモデル属性(dp-model)と内部ngモデル(dpModelObject)を使用します。私はこの内部モデルコントローラにアクセスして、その初期状態の有効性属性を設定したいと考えています。角度指令アクセス内部ngモデルコントローラ

可能ですか?

(function() { 
 

 
\t angular.module('app').directive('datePicker', datePicker); 
 

 
    datePicker.$inject = []; 
 

 
    function datePicker() { 
 
     return { 
 
     restrict: 'E', 
 
       scope: { 
 
        dpModel: '=', 
 
        dpRequired: '=' 
 
       }, 
 
       // replace: true, 
 
       templateUrl: template.html, 
 

 
       link: function($scope, $element, $attrs, ngModelCtrl) 
 
       { 
 
        if ($scope.dpModel) { 
 
         $scope.dpModelFormatted = moment($scope.dpModel, 'YYYY-MM-DD').format('YYYY. MM. DD.'); 
 
        } 
 

 
        $scope.$watch('dpModelObject', function(date) { 
 
         if (date) { 
 
          $scope.dpModel = moment(date).format('YYYY-MM-DD'); 
 
         } 
 
        }, true); 
 
       } 
 
     }; 
 
\t } 
 

 
})();
<div class="input-group datepicker"> 
 
    <input type="text" class="form-control" 
 
     moment-picker="dpModelFormatted" 
 
     ng-model="dpModelObject" 
 
     ng-required="dpRequired" 
 
    > 
 
    <span class="input-group-addon"> 
 
     <i class="glyphicon glyphicon-calendar"></i> 
 
    </span> 
 
</div>

答えて

0

あなたの指令定義オブジェクト内requireプロパティを設定する必要があります。ドキュメントから

は、別の指示を必要とし、連結機能の4番目の引数としてのコントローラを注入します。

return { 
    restrict: 'E', 
    require: 'ngModel', // here 
    scope: { 
     ngModel: '=', // and call it by the attribute name 
     dpRequired: '=' 
    }, 
    .... 

は、その後、あなたのリンク機能では4番目の引数は、より詳細に本を超えるngModelControllerthe official docs、外出先を参照します

関連する問題