未定义的获取.Angular Factory;Ionic框架错误
Get in undefined. Angular Factory & Ionic Framework Error
我正试图在后台使用一个工厂。我遇到了一个注入器错误,所以我把工厂放在了app.js
而不是services.js
中。这样做解决了注入器问题,但现在当我从app.js
调用factory.get
时,我得到"不是函数"。
var app = angular.module('starter', ['ionic','ionic.service.core', 'starter.controllers','ngStorage','ngCordova'])
var myService = app.factory('myService', function($localStorage, $scope, $http) {
var items = $http.get("url + $localStorageVariable").then(function(resp) {
if (resp) {
return resp['data.items'];// This will produce promise, not array so can't call directly
console.log("Factory success");
} else {
console.error('ERR', err);
}
});
return {
getAll: function() {
return items;
}
}
});
//later in app.js
myService.getAll().then(function(items){
console.log("Debug. This line in service call") //this doesnt log.
console.log(items)
});
错误:
app.js:50未捕获类型错误:myService.getAll不是函数
编辑:
我现在拥有的是:
var app = angular.module('starter', ['ionic','ionic.service.core', 'starter.controllers','ngStorage','ngCordova'])
app.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
(function() {
'use strict';
angular
.module('starter', [])
.controller('MainCtrl', MainCtrl)
.factory('myService', myService);
MainCtrl.$inject = ['$scope', 'myService'];
function MainCtrl($scope, myService) {
function getSuccess(response) {
$scope.items = response.data;
}
function getError(response) {
console.log('error');
}
myService.getAll()
.then(getSuccess)
.catch(getError);
}
function myService($http) {
var factory = {
getAll: getAll
};
return factory;
function getAll() {
return $http.get("url");//triple checked, not the isssue
}
}
})();
您似乎没有将factory
注入到controller
中。此外,factory
的编写方式也有错误。检查以下示例:
(function() {
'use strict';
angular
.module('starter', [])
.controller('MainCtrl', MainCtrl)
.factory('myService', myService);
MainCtrl.$inject = ['$scope', 'myService'];
function MainCtrl($scope, myService) {
function getSuccess(response) {
$scope.items = response.data;
}
function getError(response) {
console.log('error');
}
myService.getAll()
.then(getSuccess)
.catch(getError);
}
function myService($http) {
var factory = {
getAll: getAll
};
return factory;
function getAll() {
return $http.get('url');
}
}
})();
相关文章:
- 带有gmap和ionic框架的Javascript代码
- Ionic指令VS带Ionic框架的Angular材料指令
- 带有外部JSON文件的Ionic框架
- Ionic框架:从responseText解析xml
- ionic框架中的app.js函数冲突
- ionic框架,在模板渲染后加载javaScript
- 在 ionic 框架上跟踪开始和结束 Web 请求
- 使用Ionic框架在AngularJS中提交表单后,输入不会清除
- 使用PHP发布Ionic框架中的数据
- 如何使用angular js和ionic框架发送电子邮件
- ng节目没有'不适用于Ionic框架
- 如何使用javascript将数据从数据库调用到ionic框架(angularjs)的首页
- 用ionic框架和angular js在html中动态设置class属性
- IONIC框架(AngularJs&JavaScript)|是推荐的基于SOAP的web服务
- Ionic框架未加载ng模型变量
- AngularJS ng-click转到另一个页面(使用Ionic框架)
- ionic框架中调用视图的Ui-router问题
- 在ionic框架上使用angular服务
- 在Ionic框架(Phonegap)中正确地在视图之间存储变量
- Cordova / Ionic框架(Android) -闪屏不成比例