Nativescript Angular 拍照后无法将图像分配给 属性
Nativescript Angular Cannot assign image to property after taking picture
我正在使用 nativescript-camera 在我的 android 应用程序中捕捉图像,但我总是收到 TypeError: Cannot set 属性 'imageSource' of undefined。我正在按照指南 here 进行操作,我所有的相机代码似乎都是正确的,但我不确定我哪里做错了。
export class SocialRegistrationComponent implements OnInit {
imageSource: ImageSource;
constructor() {}
ngOnInit() {
}
capturePicture() {
const options = {
saveToGallery: false,
allowsEditing: false,
format: 'png'
};
camera.requestPermissions().then(
function success() {
camera.takePicture(options)
.then((capturedImageAsset) => {
let imageSource = new imageSourceModule.ImageSource;
imageSource.fromAsset(capturedImageAsset)
.then((capturedImageSource: ImageSource) => {
console.log(capturedImageSource); // Display correctly
this.imageSource = capturedImageSource; // Error here, this.imageSource undefined
});
}).catch((err) => {
console.log('Error -> ' + err.message);
});
},
function failure() {
// failed
}
);
}
}
上下文 (this
) 不会指向成功函数内的 Angular 组件。您必须使用箭头函数或在局部变量中保留上下文。
success() => {
// Using arrow function retains the context
....
}
我正在使用 nativescript-camera 在我的 android 应用程序中捕捉图像,但我总是收到 TypeError: Cannot set 属性 'imageSource' of undefined。我正在按照指南 here 进行操作,我所有的相机代码似乎都是正确的,但我不确定我哪里做错了。
export class SocialRegistrationComponent implements OnInit {
imageSource: ImageSource;
constructor() {}
ngOnInit() {
}
capturePicture() {
const options = {
saveToGallery: false,
allowsEditing: false,
format: 'png'
};
camera.requestPermissions().then(
function success() {
camera.takePicture(options)
.then((capturedImageAsset) => {
let imageSource = new imageSourceModule.ImageSource;
imageSource.fromAsset(capturedImageAsset)
.then((capturedImageSource: ImageSource) => {
console.log(capturedImageSource); // Display correctly
this.imageSource = capturedImageSource; // Error here, this.imageSource undefined
});
}).catch((err) => {
console.log('Error -> ' + err.message);
});
},
function failure() {
// failed
}
);
}
}
上下文 (this
) 不会指向成功函数内的 Angular 组件。您必须使用箭头函数或在局部变量中保留上下文。
success() => {
// Using arrow function retains the context
....
}