推送新页面时的条件参数

时间:2017-08-31 08:55:27

标签: javascript angular typescript ionic2 ionic3

到目前为止,我能够将值传递给使用NavParams推送的页面,现在问题是我必须将值从页面A传递到页面B仅在条件满足时才传递在页面A上。以前传递单个值我使用下面的代码,它起作用:

addNewContact(event) {
    event.stopPropagation();
    this.navCtrl.push(EditContactPage, {
      isAdd: "true",
    });
}

我尝试使用以下代码传递另一个值:

addNewContact(event) {
    event.stopPropagation();
    this.navCtrl.push(EditContactPage, {
      isAdd: "true",
      if(isLocal) {
      isLocalContact : "true"   // ERROR: Unused Label.
      }
   });
}

有人可以解释我在这里做错了什么。提前谢谢。

3 个答案:

答案 0 :(得分:3)

您无法在对象分配中编写if语句。因此,您可以使用ternary operators

请尝试以下代码。

 this.navCtrl.push(EditContactPage, {
      isAdd: "true",
      isLocalContact : isLocal ? "true" : "false"
       });

答案 1 :(得分:1)

对象无法添加类似的属性,您必须执行以下操作:

addNewContact(event) {
  event.stopPropagation();

  const navObj = {
    isAdd: "true"
  };
  if (isLocal) {
    navObj.isLocalContact = 'true';
  }

  this.navCtrl.push(EditContactPage, navObj);
}

这将允许您仅在需要时添加属性

答案 2 :(得分:1)

你只需要这样做:

 addNewContact(event) {
    this.isLocalContact =false;
    if(isLocal) {
    this.isLocalContact =true;
    }
    event.stopPropagation();
    this.navCtrl.push(EditContactPage, {
      isAdd: "true",
      isLocalContact : this.isLocalContact 
      }
   });
}