Angular 2 让用户从他们的本地机器上选择和镜像
Angular 2 let user choose and image from their local machine
我是 Angular 的新手。我正在尝试使用 Angular 2 制作一个简单的网络应用程序,我允许用户从他们的本地计算机 select 和图像。然后我想在 <img>
标签中显示此图像。稍后对图像执行旋转、更改比例、更改宽度等操作
这就是我的组件
@Component({
selector: 'image-container',
template: `
<input type="file" (change)="changeListner($event)" />
<img id="image"/>
`,
directives: [ImageActionsComponent]
})
export class ImageContainerComponent {
// make FileReader work with Angular2
changeListner(event){
var reader = new FileReader();
reader.onloaded = function (e) {
// get loaded data and render thumbnail.
var src = e.target.result;
document.getElementById("image").src = src;
};
// read the image file as a data URL.
reader.readAsDataURL(event.target.files[0]);
}
}
但是根本不管用。如何使用 Angular2 读取图像并更新 src 属性?
我只是想学习 Angular。 :)
有更好更简单的方法吗?
它不起作用,因为您有 onloaded
事件名称。没有这个事件,应该是onload
:
import {Component, ElementRef} from 'angular2/core'
@Component({
selector: 'image-container',
template: `
<input type="file" (change)="changeListner($event)" />
<img class="image" />
`,
directives: [ImageActionsComponent]
})
export class ImageContainerComponent {
constructor(private element: ElementRef) {}
changeListner(event) {
var reader = new FileReader();
var image = this.element.nativeElement.querySelector('.image');
reader.onload = function(e) {
var src = e.target.result;
image.src = src;
};
reader.readAsDataURL(event.target.files[0]);
}
}
此外,最好使用 ElementRef
在组件中定位图像。
对于那些遇到此错误 angular 的人:属性 结果不存在于类型 EventTarget
您可以通过以下方式简单地解决它:
this.url = event.target['result']
我的解决方案是这样的:
reader.onload = (e) => {
image.src=reader.result;
}
因为这个答案指出 避免 属性 'result' 在类型 'eventtarget' 上不存在
您还可以确定 e 的类型为 any,如下所示:
reader.onload = function(e: any) {
var src = e.target.result;
image.src = src;
};
我是 Angular 的新手。我正在尝试使用 Angular 2 制作一个简单的网络应用程序,我允许用户从他们的本地计算机 select 和图像。然后我想在 <img>
标签中显示此图像。稍后对图像执行旋转、更改比例、更改宽度等操作
这就是我的组件
@Component({
selector: 'image-container',
template: `
<input type="file" (change)="changeListner($event)" />
<img id="image"/>
`,
directives: [ImageActionsComponent]
})
export class ImageContainerComponent {
// make FileReader work with Angular2
changeListner(event){
var reader = new FileReader();
reader.onloaded = function (e) {
// get loaded data and render thumbnail.
var src = e.target.result;
document.getElementById("image").src = src;
};
// read the image file as a data URL.
reader.readAsDataURL(event.target.files[0]);
}
}
但是根本不管用。如何使用 Angular2 读取图像并更新 src 属性?
我只是想学习 Angular。 :)
有更好更简单的方法吗?
它不起作用,因为您有 onloaded
事件名称。没有这个事件,应该是onload
:
import {Component, ElementRef} from 'angular2/core'
@Component({
selector: 'image-container',
template: `
<input type="file" (change)="changeListner($event)" />
<img class="image" />
`,
directives: [ImageActionsComponent]
})
export class ImageContainerComponent {
constructor(private element: ElementRef) {}
changeListner(event) {
var reader = new FileReader();
var image = this.element.nativeElement.querySelector('.image');
reader.onload = function(e) {
var src = e.target.result;
image.src = src;
};
reader.readAsDataURL(event.target.files[0]);
}
}
此外,最好使用 ElementRef
在组件中定位图像。
对于那些遇到此错误 angular 的人:属性 结果不存在于类型 EventTarget
您可以通过以下方式简单地解决它:
this.url = event.target['result']
我的解决方案是这样的:
reader.onload = (e) => {
image.src=reader.result;
}
因为这个答案指出
reader.onload = function(e: any) {
var src = e.target.result;
image.src = src;
};