<div data-ng-app="myApp" data-ng-controller="ProjectHighLigthsController">
<div ng-form="userForm">
<img alt="" data-ng-click="addAnswers($event)" data-ng-show="isAdmin" src="/SaveBttn.png"
style="width: 100px; height: 50px;" />
<img alt="" onclick="Close()" src="/Close.png" />
Division:<select class="dropdown" name="Division" data-ng-model='selectedDivision' data-ng-options='item.DivisionName for item in Divisions'></select>
<span style="color: Red; font-weight: lighter;" ng-show="userForm.Division.$error.empty">Division is not selected</span>
Year<select class="dropdown" data-ng-model='selectedYear' name="Year" data-ng-options='item.Year for item in Years'></select>
<span style="color: Red; font-weight: lighter;" ng-show="userForm.Year.$error.empty">Year is not selected</span></div>
</div>
The items in the dropdown are being pulled from sharepoint list and the code is all under one controller. On addAnswers Event the data is being stored in the list again in the same controller.
I would like to create a service and have different controllers to bind data to the dropdown list and a different controller to save the data. And below is the code I have written
var myApp = angular.module('myApp', []);
myApp.config(function ($httpProvider) {
//Enable cross domain calls
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
});
myApp.service('getItensforDropdownService', ['$http', function ($http) {
var list = function (username) {
return $http({
method: 'GET',
url: username,
withCredentials: true,
dataType: 'json',
headers: { "Accept": "application/json; odata=verbose" }
});
}
return {
Items: list
};
}]);
And the Controllers are :
myApp.controller('DivisionCtrl', ['$scope', 'getItensforDropdownService',
function ($scope, getItensforDropdownService) {
getItensforDropdownService.Items("/Division")
.success(function (data, status, headers, config) {
data.d.results.unshift({ DivisionName: '---Select---' });
// do magic stuff with the result
// (which is in the data param)
$scope.Items = data.d.results;
$scope.selectedOption = $scope.Items[0];
})
.error(function (data, status, headers, config) {
$scope.getCallJSONResult = "data not retrieved";
})
}]);
However, I dont understand how do I pass the values of the selected dropdowns in the new controller on ng-click for Addanswers($event) Please let me know how do I get this to work.