亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

javascript - Angular2中聲明的成員變量為何顯示undefined?

瀏覽:87日期:2023-05-31 08:25:51

問題描述

在用angular和ionic2 做個添加備忘事件demo,結果頁面報錯,

AlertCmp.html:1 ERROR TypeError: Cannot read property ’push’ of undefined at Object.handler (check-list.ts:40) at AlertCmp.btnClick (alert-component.js:184) at Object.eval [as handleEvent] (AlertCmp.html:1) at handleEvent (core.es5.js:11914) at callWithDebugContext (core.es5.js:13206) at Object.debugHandleEvent [as handleEvent] (core.es5.js:12794) at dispatchEvent (core.es5.js:8814) at core.es5.js:9406 at HTMLButtonElement.<anonymous> (platform-browser.es5.js:2687) at t.invokeTask (polyfills.js:3)

百思不得其解,望解答。代碼:

import { Component } from ’@angular/core’;import {AlertController, IonicPage, NavController, NavParams} from ’ionic-angular’;import {CheckListModel} from '../../models/check-list-model';@Component({ selector: ’page-check-list’, templateUrl: ’check-list.html’,})export class CheckListPage { checklists:CheckListModel[]; constructor(public navCtrl: NavController, public navParams: NavParams,public alertCtrl: AlertController) { } ionViewDidLoad() {console.log(’ionViewDidLoad CheckListPage’); } save(){}; addChecklist(){let prompt= this.alertCtrl.create({ title:’添加新的事項’, message:’在這里你可以添加新的待辦事項’, inputs:[ {name:’name’} ], buttons:[ { text:’取消’ }, { text:’保存’, handler: data => { let newChecklist= new CheckListModel(data.name,[]); this.checklists.push(newChecklist); newChecklist.checklistObservable.subscribe(res=>{this.save()});this.save(); } } ]});prompt.present(); }; renameChecklist(checklist){let prompt= this.alertCtrl.create({ title:’修改事項’, message:’在這里你可以修改你的待辦事項’, inputs:[ {name:’name’} ], buttons:[ { text:’取消’ }, { text:’保存’, handler: data => {let i= this.checklists.indexOf(checklist);this.checklists[i].setTitle(data.name);this.save(); } } ]});prompt.present(); }; removeChecklist(checklist): void{let index = this.checklists.indexOf(checklist);if(index > -1){ this.checklists.splice(index, 1); this.save();} }; viewChecklist(checklist): void {this.navCtrl.push(CheckListPage, { checklist: checklist}); }}

運行代碼顯示push方法未定義,我在addchecklist方法中consolelog了this.checklists顯示undefine;下面附上CheckListModel代碼:

import {Observable} from 'rxjs/Observable';export class CheckListModel{ checklistObservable: any; checklistObserver: any; constructor(public title: string, public items: any){ this.checklistObservable=Observable.create(observer=>this.checklistObserver=observer); } addItem(item){this.items.push({ title: item, checked: false});this.checklistObserver.next(true); } removeItem(item){let i=this.items.indexOf(item);if(i>-1){this.items.splice(i,1)}this.checklistObserver.next(true); } renameItem(item,title){let i=this.items.indexOf(item);if (i>-1){this.items[i].title=title}this.checklistObserver.next(true); } setTitle(title){this.title=title;this.checklistObserver.next(true); } toggleItem(item){item.checked=!item.checked;this.checklistObserver.next(true); }}

求大神幫看下究竟咋回事?javascript - Angular2中聲明的成員變量為何顯示undefined?

javascript - Angular2中聲明的成員變量為何顯示undefined?

問題解答

回答1:

this.items.push()之前先讓this.items = []賦個值吧,不然一個underfined當然沒有push()的方法

回答2:

items類型的any修改成數組應該就可以了吧

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 免费观看欧美一级特黄 | 欧美一级片毛片免费观看视频 | 国产真实自拍 | 国产精品va在线观看无 | 国产精品视屏 | 免费毛片观看 | 成人欧美视频在线观看播放 | 哪里可以看黄色播放免费 | 亚洲激情成人 | 亚洲精品午夜一区二区在线观看 | 日韩一级在线观看 | 欧美一级毛片在线观看 | 野战好大好紧好爽视频 | 亚洲国产成人va在线观看网址 | 一级特黄录像视频免费 | 成年人黄色大片 | 中文字幕 视频一区 | 欧美日本俄罗斯一级毛片 | 三级黄色毛片网站 | 国产草草| 色婷婷六月丁香七月婷婷 | 日韩欧美毛片免费看播放 | 成年性视频bbixx | 免费的污污网站 | 高清免费a级在线观看国产 高清免费毛片 | 亚洲成a人片在线观看播放 亚洲成a人片在线播放观看国产 | 大陆一级毛片免费视频观看i | 久草视频网 | 免费国内精品久久久久影院 | 黄色a级毛片 | 视频一区二区三区在线观看 | 国产在线一91区免费国产91 | 久久99热精品免费观看无卡顿 | 香蕉精品在线 | 欧美日韩在线成人 | 国产色视频在线 | 大陆一级毛片 | 天天影视色香欲综合网网站麻豆 | 黄色一级片在线 | 黄色毛片免费进入 | 国产羞羞事1000部在线观看 |