首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 2单击事件不起作用

Angular 2单击事件不起作用
EN

Stack Overflow用户
提问于 2017-03-22 20:59:42
回答 2查看 12K关注 0票数 1

我有一个web项目,使用angular 2,我的不同页面使用点击事件没有任何问题,但创建新页面,然后点击事件在新页面给出一个错误。

此错误

平台浏览器: self.parentView.parentView.context.changedItem不是(/AppModule/SiteConfig/component.ngfactory.js:137) at View_SiteConfig3.eval (core.umd.js:12399) at HTMLTextAreaElement.eval (platform-browser.umd.js:3223) at ZoneDelegate.invokeTask (zone.js:265) at Object.onInvokeTask (core.umd.js:3971) at ZoneDelegate.invokeTask (区域)的函数。js:264)在Zone.runTask (zone.js:154)在HTMLTextAreaElement.ZoneTask.invoke (zone.js:335)

site-config.html

代码语言:javascript
复制
<div *ngFor="let item of items1; let i = index;" class="col-sm-4">
    <button (click)="changedItem(item)">Test</button>
</div>

site-config.ts

代码语言:javascript
复制
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(item) {
        //My Codes This Here
    }

    constructor(private http: Http) {
    }
}

编辑:解决了此方法的问题;

我的项目成功了。问题是ts文件未编译,然后给出"is not a function“错误

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-22 21:13:35

也许这是你没有提供的一段代码的错误。

我重现你的代码:

视图:

代码语言:javascript
复制
<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> 

课程内容:

代码语言:javascript
复制
items1: number[] = [1,2,3]

current: number;

ngOnInit() {
}

public changedItem(item) {
    this.current = item;
}

constructor() {
}

这是一个有效的方法:https://plnkr.co/edit/ZGI1FNB8RWN9BnnPnKgJ?p=preview

你能提供更多的代码吗?

票数 3
EN

Stack Overflow用户

发布于 2017-03-22 21:09:32

试试这个:

site-config.html

代码语言:javascript
复制
<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>

site-config.ts

代码语言:javascript
复制
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) {
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42952355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档