Ich benutze Angularjs Version 1.5, um die Eingaben in meinem Formular zu validieren.Angular ng-erforderlich funktioniert nicht mit benutzerdefinierten Direktive
- ng-Bedarf verwendet wird, um die gesamte Eingabe bestätigen erforderlich
jedoch sein nicht mit einer benutzerdefinierten Richtlinie arbeiten, die eine Combo macht. Die Combo ruft die Elemente basierend auf dem Parameter "listId" ab. Dann iteriert es die 'lookupItems' mit ng-repeat. Ich denke, etwas fehlt wie NGModel. Warum und wie implementieren?
Die Combo-Richtlinie:
app.directive('combo', function($http) {
return {
restrict: 'AE',
template: '<div class="input-group"> <select ng-model="selectedItem">' +
'<option ng-repeat="option in lookupItems" value={{option.ListValueID}}>{{option.Translation.Value}}</option></select>' +
' {{selectedItem}} </div>',
replace: true,
scope: {
listId: '=',
defaultItem: '=',
selectedItem: '='
},
controller: function($scope) {
$http({
method: 'GET',
url: '/home/listvalues?listid=' + $scope.listId
}).then(function(response) {
$scope.lookupItems = response.data;
}, function(error) {
alert(error.data);
});
},
link: function(scope, element, attrs) {}
};
});
der HTML-Ansicht: wird über Attribute Iterieren, die die Art der Steuerung enthält, zu machen, dann wird ihr Satz ng-erforderlich ist, um einen booleschen basierend auf ‚Attribut. Erforderlich 'was wahr ist.
<form name="profileAttributesForm" ng-controller="metadataCtrl" class="my-form">
<div ng-repeat="a in attributes">
<div ng-if="a.DataType == 1">
<input type="text" name="attribute_{{$index}}" ng-model="a.Value" ng-required="a.Required" />
<span ng-show="profileAttributesForm['attribute_{{$index}}'].$invalid">Enter a Text</span> text : {{a.Value}}
</div>
<div ng-if="a.DataType == 4">
<div combo list-id="a.LookUpList" name="attribute_{{$index}}" selected-item="a.Value" ng-required="a.Required"></div>
<span ng-show="profileAttributesForm['attribute_{{$index}}'].$invalid">lookup Required</span> Value from lookup: {{a.Value}}
</div>
</div>
</form>
Probe von Attributen ($ scope.attributes), die in Form iteriert wird, Ich reicht es nur zu Veranschaulichungszwecken:
[{
"AttributeID": 1,
"DataType": 4,
"NodeID": 0,
"Name": "Name",
"Description": null,
"LookUpList": 1,
"SortAscending": false,
"Required": true,
"DefaultValue": "1",
"Order": 1,
"Value": ""
}, {
"AttributeID": 3,
"DataType": 1,
"NodeID": 0,
"Name": "Job Title",
"Description": null,
"LookUpList": 0,
"SortAscending": false,
"Required": true,
"DefaultValue": null,
"Order": 2,
"Value": ""
}, {
"AttributeID": 4,
"DataType": 1,
"NodeID": 0,
"Name": "Email",
"Description": null,
"LookUpList": 0,
"SortAscending": false,
"Required": true,
"DefaultValue": null,
"Order": 3,
"Value": ""
}]
Dank @Cosmin. Können Sie einen Link oder ein Beispiel für die komplexe Lösung bereitstellen, die erläutert, wie sie implementiert wird? – Coding
@ h.salman Sicher! Ich habe meine Antwort bearbeitet und eine Reihe von Artikeln hinzugefügt, die Ihnen helfen können. –