将新对象添加到现有 json

Posted

技术标签:

【中文标题】将新对象添加到现有 json【英文标题】:Add new object into existing json 【发布时间】:2018-02-08 03:06:29 【问题描述】:

我有这样的dropdown

<input id="tripFrom" type="text" 
   angular-select2="type:'typeahead',placeholder:'- Select -'" 
   select-typeahead-params="removeTripId:currentTrip.customerDetails.tripToID, type:'startsFrom'" 
   select-typeahead-url="getTripFrom('startsFrom')"
   ng-model="currentTrip.fromTripID" 
   select-text="currentTrip.startingAreaName" 
/>

对于这个dropdown,我得到这样的数据:

"success":true,
 "items":[
   "id":56565,"text":"andra",
   "id":56568,"text":"tamilnadu"
 ]

我的问题是,当我在 dropdown 中添加一些新文本(dropdown 中不存在)时,我需要在 items 中创建新的 object

当我blur dropdown 新添加的数据应显示在该dropdown 中。

这是我添加的:

$('#s2id_autogen8_search').change(function()
  var data=[];var items=;
  var newAddress=$('#s2id_autogen8_search').val();
  var newId=Math.floor(Math.random()*1000000+1);
  var newTripAddress=id:newId,text:newAddress
  items.id=newId;
  items.text=newAddress;
 data.push(items)
  /*$("#tripFrom").select2(
    data : newTripAddress)*/
);

但是当我blur 时我的输入没有显示。我做错了什么?

【问题讨论】:

items 指的是什么? 请检查我的json 您的代码都没有使用items 显示您的元素,例如,我可以看到它没有数据绑定。改变它应该如何改变你的元素? 不是从服务器端获取的 json 名称。我现在不知道它是否正确。这就是为什么要问你们。 伙计们,我已经添加到数组中,但是当我关注它时,它现在没有显示这是唯一的问题。请检查更新的代码。它作为新数组添加,为什么无法添加到现有数组中 【参考方案1】:

尝试使用模糊而不是更改事件。

$('#s2id_autogen8_search').change(function()

// use this instead 

$('#s2id_autogen8_search').on('blur', function()

可能就这么简单。

【讨论】:

以上是关于将新对象添加到现有 json的主要内容,如果未能解决你的问题,请参考以下文章

将新属性添加到另一个数组中的现有对象数组

Hyperledger Fabric:使用 JsonPath 将新组织添加到现有通道

将新对象添加到数组

将新文档添加到现有集群中

如何将新联盟添加到现有正在运行的网络 Hyperledger 结构中?

将新字典添加到现有字典作为键的值[重复]