Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了typescript – “TypeError:无法读取属性’然后’未定义大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在将我的离子v1应用程序更新为离子v2,但我在基于承诺的服务方面遇到了麻烦.

离子v1

home.controller.js

@H_502_15@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

@H_502_15@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

@H_502_15@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

@H_502_15@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.
随着v2我得到一个错误
TypeError:无法读取take-photos.ts中未定义的属性’then’为此行this.cameraService.getPicture().然后

我不明白为什么我跟着angular tutorial about services and promises

如果有人有想法,那将是非常有帮助的.

解决方法

你错过了从getPicture函数返回promise,因此你可以使用.then函数.

@H_502_15@getPicture () : any { // my options here return this.platform.ready().then(() => { navigator.camera.getPicture((result) => { console.log(result); // Called return Promise.resolve(result); },options); }); }

大佬总结

以上是大佬教程为你收集整理的typescript – “TypeError:无法读取属性’然后’未定义全部内容,希望文章能够帮你解决typescript – “TypeError:无法读取属性’然后’未定义所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: