我正在使用Ionic与ngCordova一起构建移动应用程序。为了尽可能在浏览器中开发我希望覆盖ngCordova方法以在我的app.js的配置块中使用$provide
来返回模拟响应(因为它们取决于设备功能)。
事情是这样的:
.config(function($stateProvider, $urlRouterProvider, $provide) {
if(!window.cordova) {
$provide.value('$cordovaCapture', {
captureImage: function() {
return {
end: 0,
fullPath: "http://static2.shop033.com/resources/18/160536/picture/A1/85135265.jpg",
lastModified: null,
lastModifiedDate: 1412269066000,
localURL: "cdvfile://localhost/temporary/device-specific-file.jpg",
name: "photo_013.jpg",
size: 440614,
start: 0,
type: "image/jpeg"
}
}
});
}
}
然而,ngCordova captureImage
方法返回一个承诺,我不能模拟与$q
承诺由于事实,你不能在.config
块注入$q
。
有没有不同的地方,我可以使用$provide
覆盖这些服务连同$q
?
如果服务不存在,调用装饰服务会失败吗?如果他在科尔多瓦运行,那么除了他在浏览器中运行外,还会有其他服务。这就是为什么我提出了有条件的服务添加,而不是有条件的服务修改。 – 2014-10-04 14:56:12