AngularJS 1.5とTypeScript 1.7を使用してディレクティブを作成しようとしています。
I've followed this exampleが、活字体は私が$バリデータをチェックしましたし、それが署名以下に、型IModelValidatorsのだng.INgModelController
interface IOneItemRequiredValidator extends ng.INgModelController {
$validators: {
oneItemRequired(modelValue: any, viewValue: any) : boolean;
};
}
を拡張する際に「型シグネチャがタイプに欠けている」私を与える:
をinterface IModelValidators {
[index: string]: (modelValue: any, viewValue: any) => boolean;
}
私はそれに従いましたが、今はTypeScriptが複雑ではありませんが、$ validatorsオブジェクトの新しいプロパティにアクセスしようとすると、それを見つけることができません。
interface IOneItemRequiredValidator extends ng.INgModelController {
$validators: {
[oneItemRequired: string]: (modelValue: any, viewValue: any) => boolean;
};
}
angular
.module('app')
.directive('oneItemRequired',() => {
return {
restrict: 'A',
require: 'ngModel',
link: (scope: ng.IScope, element: ng.IAugmentedJQuery, attributes: ng.IAttributes, controller: IOneItemRequiredValidator) => {
controller.$validators.oneItemRequired = (modelValue, viewValue) => {
return viewValue !== null && viewValue !== undefined && viewValue.length > 0;
}
}
};
});
私が間違って私の新しいIOneItemRequiredValidatorインターフェイスを宣言していますか?ありがとう!
おかげ@Meligy。私は第二の選択肢がより明確に見えるようになった。それは今、治療に取り組んでいます!歓声 – HaRoLD
ありがとう、オプション2、良い解決に行きました。 – Ric