我有一个web项目并使用angular 2我的不同页面使用click事件没有任何问题但是新页面创建然后click事件在新页面中出错。
此错误
TypeError:self.parentView.parentView.context.changedItem不是 功能 在View_SiteConfig3.handleEvent_0(/AppModule/SiteConfig/component.ngfactory.js:137) 在View_SiteConfig3.eval(core.umd.js:12399) 在HTMLTextAreaElement.eval(platform-browser.umd.js:3223) 在ZoneDelegate.invokeTask(zone.js:265) at Object.onInvokeTask(core.umd.js:3971) 在ZoneDelegate.invokeTask(zone.js:264) 在Zone.runTask(zone.js:154) 在HTMLTextAreaElement.ZoneTask.invoke(zone.js:335)
网站-config.html
[Sinks.SYSLF]
...
Target="logs"
FileName="logs/dsmip_%N.log"
网站-config.ts
<div *ngFor="let item of items1; let i = index;" class="col-sm-4">
<button (click)="changedItem(item)">Test</button>
</div>
编辑:解决此方法的问题;
我的项目奏效了。问题是ts文件未编译然后给出“不是 功能“错误
答案 0 :(得分:2)
也许这是您未提供的一段代码中的错误。
我重现你的代码:
观点:
<pre *ngIf="current">{{current}}</pre>
<div *ngFor="let item of items1; let i = index;" class="col-sm-4">
<button (click)="changedItem(item)">Test</button>
</div>
班级内容:
items1: number[] = [1,2,3]
current: number;
ngOnInit() {
}
public changedItem(item) {
this.current = item;
}
constructor() {
}
这是一个有效的Plunkr:https://plnkr.co/edit/ZGI1FNB8RWN9BnnPnKgJ?p=preview
您能提供更多代码吗?
答案 1 :(得分:0)
试试这个:
网站-config.html 强>
<div *ngFor="let item of items1; let i = index;" class="col-sm-4">
<button type="button" (click)="changedItem($event, item)">Test</button> <!-- add type="button" -->
</div>
网站-config.ts 强>
import { Component, OnInit } from '@angular/core'
import { Http } from '@angular/http'
@Component({
selector: 'site-config',
moduleId: module.id,
templateUrl: '/site-config.html'
})
export class SiteConfig implements OnInit {
items1: number[] = [1,2,3]
ngOnInit(): void {
}
public changedItem(event: any, item: number) {
event.preventDefault();
//Your code...
}
constructor(private http: Http) {
}
}