Xoy*_*yce 1 android typescript nativescript
我试图在我的视图中显示并将base64图像绑定为ImageSource,但它根本没有显示.我在文档中找不到任何有用的信息..我做错了吗?
imageSource是应该保存Image src数据的属性.
这是视图:
<Page loaded = "loaded" xmlns = "http://schemas.nativescript.org/tns.xsd" >
    <StackLayout>
        <TextField hint = "String for encoding!" text = "{{ message }}" />
        <Button  tap = "{{ onGenerateQrTap }}" text = "Generate QR" class = "button" />
        <Image src = "{{ imageSource }} " />
    </StackLayout>
</Page>
这是View背后的代码:
import { Page } from 'ui/page';
import { EventData } from 'data/observable';
import { QrGeneratorViewModel } from '../../ViewModels/QrGeneratorViewModel';
import { Button } from 'ui/button';
import { Image } from 'ui/image';
let viewModel =  new QrGeneratorViewModel();
export function loaded(args: EventData) {
  let page = <Page>args.object;
  page.bindingContext = viewModel;
}
这是ViewModel:
import { Observable } from 'data/observable';
import { QrGenerator } from '../Common/QrGenerator';
import { ImageSource } from "image-source";
export class QrGeneratorViewModel extends Observable {
    private _message: string;
    private _qrGenerator: QrGenerator.Generator;
    private _imageBase64String: string;
    private _imageSource: ImageSource;
    constructor() {
        super();
        this._qrGenerator = new QrGenerator.Generator();
        this._imageSource = new ImageSource();
    }
    get message() {
        return this._message;
    }
    set message(newMessage: string) {
        this._message = newMessage;
    }
    get imageSource(): ImageSource {
        return this._imageSource;
    }
    public onGenerateQrTap(): void {
        this._imageBase64String = this._qrGenerator.qr(this._message);
        this._imageSource.loadFromBase64(this._imageBase64String);
    }
}
快速浏览代码看起来并不像是要设置_imageSource它来更新.您可以在ImageSource实例上调用该方法,但无需设置UI绑定.我会尝试使用Obterable设置_imageSource或使用Observable进行设置:
this.set('imageSource', this._imageSource.loadFromBase64(this._imageBase64String);
| 归档时间: | 
 | 
| 查看次数: | 745 次 | 
| 最近记录: |