Angular 为什么使用对象数组绑定修改ionic 2列表不能从模式中工作?

Angular 为什么使用对象数组绑定修改ionic 2列表不能从模式中工作?,angular,typescript,ionic2,Angular,Typescript,Ionic2,请看这个plnkr示例。添加或删除步骤时,列表会相应更新。现在,单击列表中的任意一个项目以删除一个项目。这将打开一个带有删除按钮的模式。单击“删除”按钮后,项目将从阵列中删除,但显示不再更新。在此之后,添加和删除按钮不再工作。我做错了什么 从“离子角度/索引”导入{Page,Alert}; 从“离子角度/索引”导入{NavController,NavParams}; 从“离子角度/指数”导入{Modal}; 从“离子角度/索引”导入{ViewController}; @页面({ 模板:` 表1

请看这个plnkr示例。添加或删除步骤时,列表会相应更新。现在,单击列表中的任意一个项目以删除一个项目。这将打开一个带有删除按钮的模式。单击“删除”按钮后,项目将从阵列中删除,但显示不再更新。在此之后,添加和删除按钮不再工作。我做错了什么

从“离子角度/索引”导入{Page,Alert};
从“离子角度/索引”导入{NavController,NavParams};
从“离子角度/指数”导入{Modal};
从“离子角度/索引”导入{ViewController};
@页面({
模板:`
表1
欢迎来到爱奥尼亚!
添加步骤
删除步骤
{{step.name}
`,
})
导出类第1页{
私人步骤:任何;
建造商(专用导航:导航控制器){
此参数为.steps=[];
this.steps.push({id:1,名称:“step1”});
}
编辑步骤(步骤){
让modal=modal.create(MyModal,step);
当前导航(模态);
modal.onDismiss(数据=>{
控制台。登录(“打开/关闭”);
控制台日志(数据);
var stepIndex=this.steps.findIndex(函数(步骤){
返回step.id==数据;
});
console.log(“at index”);
console.log(步骤索引);
这是步骤拼接(步骤索引,1);
console.log(this.steps);
});
}
addStep(){
设id=Math.floor(Math.random()*6000)+1;
this.steps.push({id:id,name:“step”+id});
console.log(“添加id为“+id”的步骤);
console.log(this.steps);
}
删除第一个(){
如果(this.steps.length>0){
这是步骤拼接(0,1);
console.log(“先删除后”);
console.log(this.steps);
}
}
}
@页面({
模板:`
莫卡尔
删除
`
})
导出类MyModal{
私人步骤:任何;
构造函数(专用导航:导航控制器,专用视图Ctrl:ViewController,专用参数:导航参数){
log(“我的mocal构造函数”);
console.log(this.params.data);
this.step=this.params.data;
}
删除步骤(){
让确认=Alert.create({
标题:“删除步骤?”,
按钮:[
{
文本:'是',
处理程序:()=>{
console.log(“删除”+this.step.id);
this.viewCtrl.disclose(this.step.id);
}
},
{
文字:“否”
}
]
});
本导航存在(确认);
}
}

尝试使用如下模式:

 constructor(public modalCtrl: ModalController) {

 }

 editStep() { 
   let modal = this.modalCtrl.create(MyModal,step);
   modal.present();
   modal.onDismiss(data => {

      //your rest of the code goes here

    });

 }

谢谢你,迪帕克,这就是问题所在。在我添加了正确的引用之后,它就工作了。

如果我尝试使用ModalController而不是Modal,那么我会得到以下错误:异常:错误:未捕获(承诺):无法解析“Page1”(?)的所有参数。确保所有参数都用Inject修饰或具有有效的类型注释,并且“Page1”用Injectable修饰。这是因为我使用的是angular的beta版本,其中不包括ModalController吗?我尝试使用最新的版本,但这不起作用
 constructor(public modalCtrl: ModalController) {

 }

 editStep() { 
   let modal = this.modalCtrl.create(MyModal,step);
   modal.present();
   modal.onDismiss(data => {

      //your rest of the code goes here

    });

 }