typescript – “TypeError:无法读取属性’然后’未定义
发布时间:2020-12-17 17:41:37 所属栏目:安全 来源:网络整理
导读:我目前正在将我的离子v1应用程序更新为离子v2,但我在基于承诺的服务方面遇到了麻烦. 离子v1 home.controller.js angular.module('myApp.home',['myApp.services.camera',]).controller('HomeCtrl',function($scope,CameraService) { $scope.getPicture = fun
我目前正在将我的离子v1应用程序更新为离子v2,但我在基于承诺的服务方面遇到了麻烦.
离子v1 home.controller.js angular.module('myApp.home',['myApp.services.camera',]) .controller('HomeCtrl',function($scope,CameraService) { $scope.getPicture = function() { var onSuccess = function(result) { // Some code }; var onError = function(err) { // Some code }; CameraService.getPicture().then(onSuccess,onError); }; }); camera.service.js angular.module('myApp.services.camera',[]) .service('CameraService',function($q,$ionicPlatform,$cordovaCamera) { return { getPicture : function() { var deferred = $q.defer(); var onSuccess = function(result) { deferred.resolve(result); }; var onError = function(err) { deferred.reject(err); }; // my options here $ionicPlatform.ready(function() { $cordovaCamera.getPicture(options).then(onSuccess,onError); }); return deferred.promise; } }; }); 这很好用. 现在用v2. 离子v2 取photos.ts import {Page,NavController} from 'ionic-angular'; import {CameraService} from '../../services/camera.service'; @Page({ templateUrl: 'build/pages/take-photos/take-photos.html',providers: [CameraService] }) export class TakePhotosPage { constructor(private cameraService: CameraService) {} getPicture () { this.cameraService.getPicture().then((result) => { console.log(result); // Did not called // Some code },(err) => { // Some code }); } } camera.service.ts import {Injectable} from 'angular2/core'; import {Platform} from 'ionic-angular'; @Injectable() export class CameraService { constructor (private platform: Platform) {} getPicture () : any { // my options here this.platform.ready().then(() => { navigator.camera.getPicture((result) => { console.log(result); // Called return Promise.resolve(result); },(err) => { return Promise.reject(err); },options); }); } } 使用v1,正确返回promise. 我不明白为什么我跟着angular tutorial about services and promises 如果有人有想法,那将是非常有帮助的. 解决方法
你错过了从getPicture函数返回promise,因此你可以使用.then函数.
码 getPicture () : any { // my options here return this.platform.ready().then(() => { navigator.camera.getPicture((result) => { console.log(result); // Called return Promise.resolve(result); },options); }); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |