【问题标题】:dynamic key value for data in sqlite storage (Ionic 3, Cordova, Angular 5)sqlite 存储中数据的动态键值(Ionic 3、Cordova、Angular 5)
【发布时间】:2018-10-02 09:18:54
【问题描述】:

我正在尝试将几个数据数组对象保存到 sqlite 存储中。 我可以设法只保存一个,但每当我尝试保存另一个时,它会覆盖具有相同键名的前一个。我必须使键值动态化。我该怎么做?

这是我的数据提供者 ts 文件。

private options: any[] = [

    {
      "name": "option 01",
      "website": "www.google.com",
      "about": "choose this option 01",
      "id": "1"
    },

    {
      "name": "option 02",
      "website": "www.yahoo.com",
      "about": "choose this option 02",
      "id": "2"
    },
    {
      "name": "option 03",
      "website": "www.bing.com",
      "about": "choose this option 03",
      "id": "3"
    },
    {
      "name": "option 04",
      "website": "www.stackoverflow.com",
      "about": "choose this option 04",
      "id": "4"
    }
]

这是我的 home.ts 文件。它很好地保存了数据对象,但现在只能保存一个。 我希望能够保存几个并使用每个数据对象的不同键值动态删除每个。

  setValue(){
    this.storage.set("object",this.option).then((successData)=>{
      console.log("Data Stored!");
      console.log(successData);
    })
  }
  getValue(){
    this.storage.get("object").then((data)=>{
      console.log(data);
    })
  }

  removeValue() {
    this.storage.remove("object").then((data)=> {
      console.log("data removed!");
    })
  }

提前致谢,理想情况下,我正在考虑将多个数据对象保存到具有不同 ID 的相同键值中……但不幸的是,如果键值相同,它将覆盖以前的数据对象。

【问题讨论】:

  • 您是否要保存不同的选项??如果更新选项数组以节省对象的时间,它是否可以解决您的问题?假设您首先有 4 个数组对象,然后又出现了 2 个数组对象,那么它将是 6。
  • 我想保存不同的选项.. 你能告诉我一些代码吗?现在我只能保存一个..
  • 如果您在保存之前更新选项值,那么它只需要一个对象..您是否有任何理由保存不同的对象?
  • 我需要能够将不同的选项保存到列表中。所以有什么方法可以将不同的选项保存到一个“对象”?或者有没有办法为选项分配不同的ID?
  • 不同的选项意味着选项1有4个数组元素选项2有3个元素??

标签: angular cordova ionic-framework ionic3 cordova-plugins


【解决方案1】:

也许我在这里遗漏了更多上下文,但只是尝试让您的功能接受您需要的选项的唯一键名(我称之为 optionNumber)。

见下文。

setValue(optionNumber){
    this.storage.set("option"+optionNumber,this.options[optionNumber]).then((successData)=>{
      console.log("Data Stored!");
      console.log(successData);
    })
  }
  getValue(optionNumber){
    this.storage.get("option"+optionNumber).then((data)=>{
      console.log(data);
    })
  }

  removeValue(optionNumber) {
    this.storage.remove("option"+optionNumber).then((data)=> {
      console.log("data removed!");
    })
  }

现在,一旦您拥有包含数据的选项数组 (this.options),当您需要存储特定选项时,只需执行以下操作:

setValue(0)

请注意,由于数组索引从 0 开始,如果您不能有选项 0,则可能需要进行调整。

【讨论】:

    猜你喜欢
    • 2018-10-08
    • 1970-01-01
    • 2018-10-10
    • 2018-10-02
    • 2020-02-06
    • 2018-02-22
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多