Eines der ng-Modelle gibt Nullwert. Wenn ich auf die Schaltfläche mit der Funktion setNewRecord
klicke, ist der Parameter selectedDocument
null. Die ersten beiden Parameter sind korrekt. Der JavaScript-Code wird ebenfalls hinzugefügt.Ng-Modelle nicht zugänglich
<form name="myForm" >
<div>
<select ng-model="selectedCompany">
<option value="">-- Select Company --</option>
<option data-ng-repeat="currentSetting in currentSettings" value={{currentSetting.SCACCode}}>{{currentSetting.SCACCode}}</option>
</select>
</div>
<div><input id="Text1" type="text" ng-model="enteredCustomer"/></div>
<div>
<select ng-model="selectedDocument" ng-click="getTypes(selectedCompany, enteredCustomer)">
<option value="">-- Select Doc type --</option>
<option data-ng-repeat="docSetting in docSettings" value="{{docSetting.Doc_Type}}">{{docSetting.Doc_Type}}</option>
</select>
</div>
<input id ="btnAdd" type="button" value="Add new record" ng-click="setNewRecord(selectedCompany, enteredCustomer,selectedDocument)"/>
Java Script
myApp.service('getDocTypesService', ['$http', '$q', function($http, $q) {
var allSettings = null;
this.getDocTypes = function(compName, custName) {
var def = $q.defer()
if (allSettings) {
def.resolve(allSettings);
} else {
$http.post('GetDocTypes', {
companyName: compName,
customerName: custName
})
.then(function(response) {
var response = $.parseJSON(response.data)
allSettings = response;
def.resolve(allSettings);
});
}
return def.promise;
}
}]);
myApp.controller('myController', ['$scope', 'getDocTypesService',
function($scope, getDocTypesService) {
$scope.getTypes = function(comp, cust) {
getDocTypesService.getDocTypes(comp, cust).then(function(value) {
$scope.docSettings = value
});
};
}
]);
Das Problem beim Abrufen der docSettings auf ng-click =“wird wahrscheinlich getTypes "in der Auswahl. Die Werte in den Optionen werden nicht neu gerendert, da kein Digest ausgelöst wird. Sie können ng-options (https://docs.angularjs.org/api/ng/directive/select) betrachten, die es lösen könnten. Jedoch ohne den JavaScript-Code ich rate nur ... –
Können wir bitte Ihren Controllercode sehen? – jbrown
Ich habe das Javascript – user6440175