2016-06-17 9 views
0

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 
     }); 
    }; 

} 
]); 
+0

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 ... –

+0

Können wir bitte Ihren Controllercode sehen? – jbrown

+0

Ich habe das Javascript – user6440175

Antwort

0

Versuchen Sie, die select für selectedDocument mit diesem ersetzen:

<select ng-model="selectedDocument" 
     ng-click="getTypes(selectedCompany, enteredCustomer)" 
     ng-options="docSetting.Doc_Type for docSetting in docSettings track by docSetting.Doc_Type"> 
</select> 
+0

Danke. Aber funktioniert nicht - immer noch null. – user6440175

+0

Was sehen Sie als Werte in den Optionen von select? –

+0

user6440175

Verwandte Themen