Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 工厂下的AngularJs分离函数_Javascript_Angularjs_Codeigniter - Fatal编程技术网

Javascript 工厂下的AngularJs分离函数

Javascript 工厂下的AngularJs分离函数,javascript,angularjs,codeigniter,Javascript,Angularjs,Codeigniter,我正在使用AngularJs和后端CodeIgniter REST API data.js ` app.factory("Data", ['$http', 'toaster','$log', function ($http, toaster,$log) { // This service connects to our REST API var serviceBase = 'link'; var obj = {}; obj.toas

我正在使用AngularJs和后端CodeIgniter REST API

data.js

` app.factory("Data", ['$http', 'toaster','$log', function ($http, toaster,$log) { // This service connects to our REST API var serviceBase = 'link'; var obj = {}; obj.toast = function (data) { toaster.pop(data.status, "", data.message, 10000, 'trustedHtml'); } obj.get = function (q) { return $http.get(serviceBase + q).then(function (results) { return results.data; }); }; obj.post = function (q, object) { //$log.log(object.customer); $http({ method: 'POST', url: serviceBase + q, headers: { Accept: "application/json", "REST-API-KEY": "key" }, data: object.customer }) .then(function (results) { $log.log(results); return results.data; }); }; obj.put = function (q, object) { return $http.put(serviceBase + q, object).then(function (results) { return results.data; }); }; obj.delete = function (q) { return $http.delete(serviceBase + q).then(function (results) { return results.data; }); }; return obj; }]); app.controller('authCtrl', function ($scope, $rootScope, $routeParams, $location, $http, Data,sData) { //initially set those objects to null to avoid undefined error $scope.login = {}; $scope.signup = {}; $scope.doLogin = function (customer) { Data.post('login', { customer: customer }).then(function (results) { Data.toast(results); if (results.status == "success") { $location.path('dashboard'); } }); }; $scope.signup = {email:'',password:'',name:'',phone:'',address:''}; $scope.signUp = function (customer) { sData.post('signUp', { customer: customer }).then(function (results) { Data.toast(results); if (results.status == "success") { $location.path('dashboard'); } }); }; $scope.logout = function () { Data.get('logout').then(function (results) { Data.toast(results); $location.path('login'); }); } }); ` app.factory(“数据”、[“$http”、“烤面包机”、“$log”, 函数($http,toaster,$log){ //此服务连接到我们的RESTAPI var serviceBase='link'; var obj={}; obj.toast=函数(数据){ toaster.pop(data.status,“”,data.message,10000,'trustedHtml'); } obj.get=函数(q){ 返回$http.get(serviceBase+q)。然后返回(函数(结果){ 返回结果和数据; }); }; obj.post=函数(q,对象){ //$log.log(object.customer); $http({ 方法:“POST”, url:serviceBase+q, 标题:{ 接受:“应用程序/json”, “REST-API-KEY”:“KEY” }, 数据:object.customer }) .然后(函数(结果){ $log.log(结果); 返回结果和数据; }); }; obj.put=函数(q,对象){ 返回$http.put(serviceBase+q,object)。然后返回(函数(结果){ 返回结果和数据; }); }; obj.delete=函数(q){ 返回$http.delete(serviceBase+q)。然后返回(函数(结果){ 返回结果和数据; }); }; 返回obj; }]); authctrl.js

` app.factory("Data", ['$http', 'toaster','$log', function ($http, toaster,$log) { // This service connects to our REST API var serviceBase = 'link'; var obj = {}; obj.toast = function (data) { toaster.pop(data.status, "", data.message, 10000, 'trustedHtml'); } obj.get = function (q) { return $http.get(serviceBase + q).then(function (results) { return results.data; }); }; obj.post = function (q, object) { //$log.log(object.customer); $http({ method: 'POST', url: serviceBase + q, headers: { Accept: "application/json", "REST-API-KEY": "key" }, data: object.customer }) .then(function (results) { $log.log(results); return results.data; }); }; obj.put = function (q, object) { return $http.put(serviceBase + q, object).then(function (results) { return results.data; }); }; obj.delete = function (q) { return $http.delete(serviceBase + q).then(function (results) { return results.data; }); }; return obj; }]); app.controller('authCtrl', function ($scope, $rootScope, $routeParams, $location, $http, Data,sData) { //initially set those objects to null to avoid undefined error $scope.login = {}; $scope.signup = {}; $scope.doLogin = function (customer) { Data.post('login', { customer: customer }).then(function (results) { Data.toast(results); if (results.status == "success") { $location.path('dashboard'); } }); }; $scope.signup = {email:'',password:'',name:'',phone:'',address:''}; $scope.signUp = function (customer) { sData.post('signUp', { customer: customer }).then(function (results) { Data.toast(results); if (results.status == "success") { $location.path('dashboard'); } }); }; $scope.logout = function () { Data.get('logout').then(function (results) { Data.toast(results); $location.path('login'); }); } }); app.controller('authCtrl',function($scope、$rootScope、$routeParams、$location、$http、Data、sData){ //最初将这些对象设置为null以避免未定义的错误 $scope.login={}; $scope.signup={}; $scope.doLogin=功能(客户){ Data.post('login'{ 顾客:顾客 }).然后(函数(结果){ 数据。toast(结果); 如果(results.status==“success”){ $location.path('dashboard'); } }); }; $scope.signup={电子邮件:'',密码:'',姓名:'',电话:'',地址:'}; $scope.signUp=功能(客户){ sData.post(“注册”{ 顾客:顾客 }).然后(函数(结果){ 数据。toast(结果); 如果(results.status==“success”){ $location.path('dashboard'); } }); }; $scope.logout=函数(){ Data.get('logout')。然后(函数(结果){ 数据。toast(结果); $location.path('login'); }); } }); 它有一个错误

TypeError: Cannot read property 'then' of undefined at h.$scope.doLogin (authCtrl.js:8) at $a.functionCall (angular.min.js:172) at angular.min.js:189 at h.a.$get.h.$eval (angular.min.js:108) at h.a.$get.h.$apply (angular.min.js:109) at HTMLButtonElement. (angular.min.js:189) at angular.min.js:31 at q (angular.min.js:7) at HTMLButtonElement.c (angular.min.js:31) TypeError:无法读取未定义的属性“then” 在h.$scope.doLogin(authCtrl.js:8) $a.functionCall(angular.min.js:172) 在角度处。最小js:189 在h.a.$get.h.$eval(angular.min.js:108)时 在h.a.$get.h.$apply(angular.min.js:109) 在HTMLButtoneElement。(angular.min.js:189) 角度。最小值:31 在q处(角度:7) 在HTMLButtonElement.c(angular.min.js:31) 正如你们所看到的,我对登录和注册功能都使用单贴方法,所以我想让它成为独立的功能

用于登录

obj.post = function (q, object) { //$log.log(object.customer); $http({ method: 'POST', url: serviceBase + q, headers: { Accept: "application/json", "REST-API-KEY": "3e9aba65f0701f5e7c1c8a0c7315039e" }, data: object.customer }) .then(function (results) { $log.log(results); return results.data; }); }; obj.post=函数(q,对象){ //$log.log(object.customer); $http({ 方法:“POST”, url:serviceBase+q, 标题:{ 接受:“应用程序/json”, “REST-API-KEY”:“3e9aba65f0701f5e7c1c8a0c7315039e” }, 数据:object.customer }) .然后(函数(结果){ $log.log(结果); 返回结果和数据; }); }; 用于注册

obj.post = function (q, object) { //$log.log(object.customer); $http({ method: 'POST', url: serviceBase + q, headers: { Accept: "application/json", "REST-API-KEY": "3e9aba65f0701f5e7c1c8a0c7315039e" }, data: object.customer }) .then(function (results) { $log.log(results); return results.data; }); }; obj.post=函数(q,对象){ //$log.log(object.customer); $http({ 方法:“POST”, url:serviceBase+q, 标题:{ 接受:“应用程序/json”, “REST-API-KEY”:“3e9aba65f0701f5e7c1c8a0c7315039e” }, 数据:object.customer }) .然后(函数(结果){ $log.log(结果); 返回结果和数据; }); };
如何用angularJs编写它?

因为您没有从Data.post返回任何内容,而是返回承诺

i、 e.更改您的数据。发布到

  obj.post = function (q, object) {
        //$log.log(object.customer);
        return $http({
             method: 'POST',
             url: serviceBase + q,
             headers: {
                    Accept: "application/json",
                    "REST-API-KEY": "key"
             },
             data: object.customer
        });            
    };

还需要添加对$scope.doLogin()的返回。我不明白,请您进一步解释。谢谢您没有从post()方法返回任何内容,我建议返回$http(..)调用的结果。在这里读一下。还可以阅读承诺和异步操作,这会有帮助。这个答案是针对我的相关错误。TypeError:无法读取未定义的属性“then”?现在我关心的是为注册和登录创建单独的函数,正如您所看到的,目前我使用的是单个函数,并传递一个变量,该变量定位我的注册和登录函数。请查看上述代码。您将明白。