0

式を取得できるカスタム検証属性ディレクティブがあります。次に例を示します。

<input type="text" uiSelectRequired="isParam == true"/>

分離スコープを使用できないと仮定して、ディレクティブでこの式を評価するにはどうすればよいですか?

ありがとう。

angular.module("app").directive('uiSelectRequired', function () {
        return {
            require: 'ngModel',
            link: function (scope, element, attr, ctrl) {
                ctrl.$validators.uiSelectRequired = function (modelValue, viewValue) {
                    var attrbs = attr;
                    var determineVal;
                    if (angular.isArray(modelValue)) {
                        determineVal = modelValue;
                    } else if (angular.isArray(viewValue)) {
                        determineVal = viewValue;
                    } else {
                        return false;
                    }
                    return determineVal.length > 0;
                };
            }
        };
    });
4

1 に答える 1

1

を使用attr.uiSelectRequiredして式を取得し、$scope.$eval()を使用して評価します。

ディレクティブの使用法が間違っていることに注意してください。そのはず

<input type="text" ng-model="something" ui-select-required="isParam == true"/>

angular.isArray() チェックで何をしようとしているのかもわかります。テキスト型の入力のビュー値とモデル値の両方が文字列になります。配列ではありません。

于 2016-03-06T16:34:41.990 に答える