I want to insert the added data into the table only after the successful completion of the mail request, but it will add before checking the mail request. So, how do I insert table row data only after success.
Also, showCategories (categories derived from api) doesn't work, but gender (getting from local) works. In the selection box (the category data parameters are shown), but I cannot select the category data. I used the same thing as the gender selection field, but the gender selection field works, but is not a category. Where did I make my mistake?
Html
<table class="table table-bordered table-hover table-condensed"> <tr style="font-weight: bold"> <td style="width:5%">No.</td> <td style="width:20%">Name</td> <td style="width:10%">Gender</td> <td style="width:30%">Profile photo</td> <td style="width:20%">Category</td> <td style="width:30%">Action</span> </td> </tr> <tr ng-repeat="user in users"> <td>{{$index+1}}</td> <td> <span editable-text="user.name" e-name="name" onbeforesave="checkName($data, user._id)" ng-model="userName" e-form="rowform" e-required> {{ user.name}} </span> </td> <td> <span editable-select="user.gender" ng-model="gender" e-name="gender" e-form="rowform" e-ng-options="s.value as s.text for s in genders"> {{ showGender(user) }} </span> </td> <td class="text-center" > <img ng-src="/api/media/{{user.media_id}}" alt="No Image" style="margin-bottom:20px;width:100%;"> <a class="btn btn-success" ui-sref="media({_id: user._id })" style="border: .0625rem solid transparent;margin: 10px 0px;padding: .465rem 1rem;"> Upload File</a> </td> <td> <span editable-select="user.category" e-name="category" e-form="rowform" e-ng-options="c.value as c.name for c in categories"> {{ showCategories(user) }} </span> </td> <td style="white-space: nowrap"> <form editable-form name="rowform" onbeforesave="saveUser($data,user_id)" ng-show="rowform.$visible" class="form-buttons form-inline" shown="inserted == user"> <button type="submit" ng-disabled="rowform.$waiting" class="btn btn-primary"> save </button> <button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default"> cancel </button> </form> <div class="buttons" ng-show="!rowform.$visible"> <button class="btn btn-primary" ng-click="rowform.$show()">edit</button> <button class="btn btn-danger" ng-click="deleteUser(user)">delete</button> </div> </td> </tr> </table>
and controller
.controller('mainCtrl', function($scope, $stateParams, $timeout, userService, categoryService, $filter, $q, verifyDelete, $window, $rootScope, $http, $state, $mdDialog) { categoryService.init(function(category_response) { $scope.categories = category_response.data.result; $scope.category = JSON.parse(JSON.stringify(getCategory($stateParams._id))); console.log($scope.category); }); function getCategory(id) { for (var i = 0; i < $scope.categories.length; i++) { console.log(i); if ($scope.categories[i]._id === id) { return $scope.categories[i]; } } return { name: '' }; } userService.init(function(user_response) { $scope.users = user_response.data.data; }); $scope.genders = [{ value: 'male', text: 'Male' }, { value: 'female', text: 'Female' }]; $scope.loadCategories = function() { return $scope.categories.length ? null : $http.get('/api/categories/list').success(function(data) { $scope.categories = data; }); }; $scope.showGender = function(user) { var selected = []; if(user.gender) { selected = $filter('filter')($scope.genders, {value: user.gender}); } return selected.length ? selected[0].text : 'Not set'; }; $scope.showCategories = function(user) { var selected = []; if (user.category_id) { selected = $filter('filter')($scope.categories, { category_id: user.category_id }); } console.log(selected); return selected.length ? selected[0]._id : 'Not set'; }; $scope.saveUser = function(user) { // console.log(name); if(user._id){ $http.put('/api/users/'+user._id, user, $scope) .then(function(response) { $state.reload(); }, function(response) { }); } else{ $http.post('/api/users/', user, $scope) .then(function(response) { $state.reload(); }, function(response) { $scope.errorMessage=response.data; $scope.errorValMessage = true; $timeout(function () { $scope.errorValMessage = false; }, 2000); }); } }; $scope.addUser = function(user) { $scope.inserted = { name:'', gender:null, email:'', password:'', re_password:'', category:null }; $scope.users.push($scope.inserted); }; }) .run(function(editableOptions) { editableOptions.theme = 'bs3'; });
api data for users
{"total_rows":2,"start":0,"data":[{"_id":"572c7696d17dde185e059390","name":"aaaaaaaaaaa","gender":"female","email":"","password":"","re_password":"","category_id":"ordinary"},{"_id":"572c76c3d17dde185e059392","name":"cccccccccc","gender":"male","email":"","password":"","re_password":"","category_id":"ordinary"}]}
Can anybody help me. thanks in advance