2016-05-27 10 views
0

私は時間入力とカスタム検証のための指示を持っています。私は開始時間と終了時間の両方を持つ必要があります。だから私は、ディレクティブにモデルを使って2つの値を渡します。指令に2つの値を渡すAngularJS

<input type="time" data-ng-model="activity.etime" data-ng-date="activity.stime, activity.etime" > 

私の指示です。私は2番目のパラメータにアクセスしようとすると、それは私に未定義の値を与えます(最初は問題ありません)。ディレクティブに2つの値を渡すのは間違った方法ですか?

app.directive('ngDate', function() { 
    'use strict'; 
    return { 
     require: 'ngModel', 
     link: function (scope, element, attr, aCtrl) {    
      function myValidation(stime,etime) {   
       console.log(etime);    
      } 
     }  
    }; 
}); 
+0

簡単な解決策は、バリデータを2つのバリデーター 'max-date = ...'と 'min-date = ...'に分割することです。これは別々に、またはペアで使用できます。もう一つの方法は、データを属性に入れ、 'attr'を使って' attr。$ oberve'を読み込み、 'validate-date min-date =" ... "max-date = "..." – csharpfolk

+1

@csharpfolkが言ったことや、単に 'activity'を渡してオブジェクトから' stime'と 'etime'を引き出すことができました。 – DerekMT12

答えて

1

本当に2つの異なるパラメータに分割するか、2つの属性を含むオブジェクトを渡すだけです。

<input type="time" data-ng-model="activity.etime" data-ng-date="{activity.stime, activity.etime}" > 

をそして、あなたはおそらく、このようにそれらにアクセスできます:あなたは本当にこれをしたい場合、あなたはおそらく何ができる

function myValidation(time) {   
    console.log(time.activity.stime, time.activity.etime);    
} 

免責事項:私はこれをテストしていません。

+0

私はそれを試しました。私はブラウザのコンソールでこれを取得しています:TypeError:未定義のプロパティ 'stime'を読み取ることができません – Lester

+0

まあ言ったように、私はそれを笑っていませんでした。変数の中のwhatsを見ることができるように、console.log(時間、アクティビティ)を実行できますか? – wdanda

+0

時間はetimeを返し、アクティビティの戻りアクティビティは定義されていません – Lester