我正在尝试创建一个包含详细视图的主列表的简单应用程序,但我无法通过此错误:
ionic.bundle.js:26794 TypeError: $q.when is not a function
at Object.getAllObjects (app.services.js:13)
at app.controller.js:11
at ionic.bundle.js:56230
at Object.ready (ionic.bundle.js:2140)
at Object.ready (ionic.bundle.js:56223)
at new MainController (app.controller.js:7)
at Object.instantiate (ionic.bundle.js:18010)
at $controller (ionic.bundle.js:23412)
at self.appendViewElement (ionic.bundle.js:59900)
at Object.render (ionic.bundle.js:57893)
它所指的代码是:
app.factory('DatabaseService', ['$q', '$http','$rootScope',
function DatabaseService( $rootScope, $q, $http) {
var _db;
var _content;
return {
initDB: initDB,
getAllObjects: function getAllObjects() {
if (!_content) {
return $q.when(_db.allDocs({ include_docs: true}))
.then(function(docs) {
_content= docs.rows.map(function(row) {
return row.doc;
});
_db.changes({ live: true, since: 'now', include_docs: true})
.on('change', onDatabaseChange);
return _content;
});
} else {
return $q.when(_content);
}
},
getObject: function getObject(id){
var index = findIndex(($rootScope._content),id);
return $rootScope._content[index];
}
};
似乎所有依赖项都是正确的,为什么我会收到这个奇怪的错误?似乎我最近的大多数错误都是“非功能”错误,但我无法弄清楚原因。
答案 0 :(得分:1)
你混合了注射剂:
['$q', '$http','$rootScope',function DatabaseService(
$rootScope, $q, $http) { ...}
所以实际上你的$ q包含$ http,重新排序,它会起作用。