Javascript 推送新页面时的条件参数

Javascript 推送新页面时的条件参数,javascript,angular,typescript,ionic2,ionic3,Javascript,Angular,Typescript,Ionic2,Ionic3,到目前为止,我能够使用NavParams将值传递到正在推送的页面,现在的问题是,只有在满足页面a上的条件时,我才能将值从页面a传递到页面B。之前,为了传递单个值,我使用了以下代码,该代码有效: addNewContact(event) { event.stopPropagation(); this.navCtrl.push(EditContactPage, { isAdd: "true", }); } 我尝试使用以下代码传递另一个值: addNewConta

到目前为止,我能够使用
NavParams
将值传递到正在推送的页面,现在的问题是,只有在满足页面a上的条件时,我才能将值从页面a传递到页面B。之前,为了传递单个值,我使用了以下代码,该代码有效:

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.
      }
   });
}

有人能解释一下我做错了什么吗。提前感谢。

您不能在对象分配中写入
if
语句。因此,您可以使用
三元运算符

试试下面的代码

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

不能在对象分配中写入
if
语句。因此,您可以使用
三元运算符

试试下面的代码

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

对象无法添加这样的属性,必须执行以下操作:

addNewContact(event) {
  event.stopPropagation();

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

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

这将允许您仅在希望添加属性时添加属性。如果对象不能添加这样的属性,则必须执行以下操作:

addNewContact(event) {
  event.stopPropagation();

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

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

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

您只需要这样做:

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

你只需要这样做:

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

这不是抛出某种语法错误吗?@suraj:不,只是
isLocalContact
下的一条红色漩涡线,表示未使用的标签。这不是抛出某种语法错误吗?@suraj:不,只是
isLocalContact
下的一条红色漩涡线,表示未使用的标签。这里是否需要其他条件?我想我们不需要其他条件。我会编辑你的答案,这里还需要其他条件吗?我想我们不需要其他条件。我会编辑你的答案,伙计