how can submit form , pass post data angularjs? know must trivial task can not see error.
that data feed post variables in php api consume webservice , return json , working when not use search function.
i have month , origin pass search function in controller, , in apiacp factory have resolve url: q.resolve(data);
when submit, console log says: "cannot read url property of undefined", can not see how inject endpoint url search function properly, search without parameters works fine.
here templates , search button :
<form method="post" ng-controller="acpsearchctrl" ng-submit="searchacp(data)"> <select name="month" ng-model="data.month"> <option value="01">january</option> <option value="02">february</option> ... </select> <select name="origin" ng-model="data.origin"> <option value="99">onestate</option> ... ... </select> <input type="button" ng-click="search(data)" value="search"/> in controller try create search function wich not working says cannot read property url of undefined :
.controller('acpsearchctrl', function($scope, apiacp, $timeout, $http, apiacpendpoint, $q) { $scope.searchacp = function(data ) { $scope.month = data.month; $scope.origin = data.origin; var q = $q.defer(); $http.post(apiacpendpoint.url, data) .then(function(data) { console.log(data); console.log(' - data.month '+data.month); console.log(' - data.origin '+data.origin); q.resolve(data); console.log(' q.promise '+q.promise); var acp = {}; acp.dados = [ data ]; $scope.data = acp.dados; console.log('data :'+$scope.data); return q.promise; }); } }) in services.js post data , works if not search month or origin :
.factory('apiacp', function($http, $q, apiacpendpoint) { console.log('1. apiacpendpoint url ', apiacpendpoint.url) var getapidata = function() { var q = $q.defer(); $http.post(apiacpendpoint.url) .success(function(data) { q.resolve(data); }) .error(function(error){ console.log('had error'+error) q.reject(error); }) return q.promise; } return { getapidata: getapidata }; })
apiacpendpoint should injected in controller definition/initialization, , not in $scope.search (same goes $http)
.controller('acpctrl', function($scope, apiacp, $ionicloading, $timeout, $http, apiacpendpoint) { $scope.data = null; apiacp.getapidata() .then(function(result) { console.log(result); $scope.headers = ['desc','real. month', 'real. year/month', 'plan. year/month', 'real. year']; var acp = {}; $scope.data = acp.dados; console.log(' scope.data '+$scope.data); }) $scope.search = function(data) { $http.post(apiacpendpoint.url,data) .success(function(data){ console.log(' data : '+data); }) } }
Comments
Post a Comment