0
である私のカスタムディレクティブである:ここで値はここで常に未定義
angular
.module('accountApp')
.directive('uniqueRecord', function($q, $timeout, $http) {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
ctrl.$asyncValidators.uniqueRecord = function(modelValue, viewValue) {
var value = modelValue || viewValue;
var attributes = scope.$eval(attrs.uniqueRecord);
// Lookup effect by name
return $http.get(attributes.url + '/' + value + '/' + ((attributes.currentRecordName == '' || attributes.currentRecordName == 'nothing') ? '_' : attributes.currentRecordName))
.then(function resolved() {
//username exists, this means validation fails
return $q.reject('exists');
}, function rejected() {
//username does not exist, therefore this validation passes
return true;
});
};
}
}
});
はHTMLです:
<input type="text" id="name" name="name" class="form-control form-input" ng-model="effect.name"
ng-disabled="isReadOnly" required
unique-record="{ url: '/api/effect', currentRecordName: {{currentEffectName == '' ? 'nothing' : currentEffectName}} }"
ng-uniqueRecord-err-type="duplicateRecord"/>
あなたは上記のHTMLで見ることができるように、私は値を渡していますcurrentRecordNameをディレクティブに追加します。ディレクティブでは、urlの値はそのまま渡されますが、currentRecordNameの値は常に未定義です。どうして?
Oups、申し訳ありませんが、私はすでにあなたがそれを解決したとは思わなかった。 –
問題ありません。助けてくれてありがとう。私はupvoteします。 – Vishal
私はあなたの答えをテストし、それは正常に動作します。だから私は私の答えを削除し、あなたのことを受け入れるでしょう。手伝ってくれてありがとう。 – Vishal