1

angularjs (バージョン 1.0.2) で 2 つのフォーム フィールド (日付) を検証するディレクティブを使用しています。フォームを検証するために、次のディレクティブを使用します。
http://jsfiddle.net/cafau/Ja2ar/
私が行った唯一の変更は、ディレクティブの名前を ui-validate に変更したことです。
http://jsfiddle.net/sidkurias/xXf6b/でフィドルを作成しました 。使用している html の一部と、コントローラーの関連部分を含めました。コントローラには、ディレクティブから呼び出したいvalidStartDateとstartBeforeEndの2つのメソッドがあります。そうすると、次のエラーが表示されます

Error: Syntax Error: Token '{' is unexpected, expecting [)] at column 13 of the expression [(function (){
var sdate = new Date($scope.avail.sdate),
    today = new Date(getDefaultDates(0));
return sdate >= today ;
}) && true] starting at [{
var sdate = new Date($scope.avail.sdate),
    today = new Date(getDefaultDates(0));
return sdate >= today ;
}) && true].at Error (<anonymous>)
at throwError (http://g.dev/app/lib/angular/angular.js:5867:11)
at consume (http://g.dev/app/lib/angular/angular.js:5905:7)
at primary (http://g.dev/app/lib/angular/angular.js:6075:7)
at unary (http://g.dev/app/lib/angular/angular.js:6066:14)
at multiplicative (http://g.dev/app/lib/angular/angular.js:6049:16)
at additive (http://g.dev/app/lib/angular/angular.js:6040:16)
at relational (http://g.dev/app/lib/angular/angular.js:6031:16)
at equality (http://g.dev/app/lib/angular/angular.js:6022:16)
at logicalAND (http://g.dev/app/lib/angular/angular.js:6013:16) 
<form name="availForm" ui-validate="{startDate: validStartDate, sbe:startBeforeEnd}" class="ng-pristine ng-valid"> <br>

ウォッチ関数を呼び出すと、検証関数は正しく解決されますが、上記の構文エラーがスローされます。angular が関数定義を好まない理由についてのアイデア。ありがとうございました

4

1 に答える 1

3

関数の前後に引用符('')を付ける必要があるようです。

ui-validate="{startDate: 'validStartDate()', sbe:'startBeforeEnd()'}"
于 2012-12-28T08:27:42.547 に答える