gpt4 book ai didi

javascript - AngularJS 无法注入(inject)服务

转载 作者:行者123 更新时间:2023-11-28 19:21:50 25 4
gpt4 key购买 nike

我有一个简单的服务,它从 HTTP 端点获取数据并将其发送回 Controller 。

我还在服务中实现了缓存,但是,我在 Controller 中的这行代码上收到此错误 TypeError: undefined is not a function

myappApi.getItems().then(function(data)

我试图找出为什么我不能。 这是 Controller 代码:

.controller('ItemsCtrl',['$scope','myappApi',function($scope, myappApi){
myappApi.getItems().then(function(data){
$scope.items = data;
});
}])

正如我在这里使用 Ioniframework 一样,我如何在 app.js 中注入(inject)我的服务:

angular.module('myApp', ['ionic', 'myApp.controllers', 'myApp.services', 'angular-data.DSCacheFactory'])

这是我的服务代码:

(function() {
'use strict';

angular.module('myApp.services',[]).factory('myappApi', ['$http', '$q', '$ionicLoading', 'DSCacheFactory', myappApi]);

function myappApi($http, $q, $ionicLoading, DSCacheFactory) {


self.itemsCache = DSCacheFactory.get("itemsCache");

//to re-use expired cached data if no internet connection
self.itemsCache.setOptions({
onExpire: function (key, value) {
getItems()
.then(function () {
console.log("items items Cache was automatically refreshed.", new Date());
}, function () {
console.log("Error getting data. Putting expired item back in the cache.", new Date());
self.itemsCache.put(key, value);
});
}
});

function getItems() {
var deferred = $q.defer(),
cacheKey = "items",
itemsData = self.itemsCache.get(cacheKey);

if (itemsData) {
console.log("Found data inside cache", itemsData);
deferred.resolve(itemsData);
} else {
$http.get("services/data.json")
.success(function(data) {
console.log("Received data via HTTP");
self.itemsCache.put(cacheKey, data);
deferred.resolve(data);
})
.error(function() {
console.log("Error while making HTTP call.");
deferred.reject();
});
}
return deferred.promise;
}

return {
getItems: getItems
};
};
})();

感谢您的宝贵时间。

最佳答案

查看 Angular 缓存文件 CHANGELOG.md :“- Angular 模块重命名为Angular-cache- DSC​​acheFactory 重命名为CacheFactory

你必须改变:

  1. app.js:使用“Angular-Cache”代替“Angular-Data.DSCacheFactory”
  2. service.js使用“CacheFactory”代替“DSCacheFactory”

关于javascript - AngularJS 无法注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com