【问题标题】:Editing array elements with angular-formly使用角度形式编辑数组元素
【发布时间】:2015-09-17 20:19:28
【问题描述】:

我正在使用 angular-formly 创建输入屏幕,只要我为每个 VALUE 都有一个 KEY,一切都很好。

但我有一种情况,值是一个包含数组的对象。这是行业标准,所以我无法更改 场结构。

父键是GEOCODE,它的值是COORDINATES(这是一个有2个元素的数组)

我想编辑这两个元素(经度和纬度)。这是可行的还是确实需要一个 KEY:VALUE 来创建和输入,这将允许编辑这些值。

/* -- JSON DATA -- */       
[ 
  "fullname": "Glen Benson",

  /* this is the objext I am trying to edit coordinates elements */
  **

"geolocation": {
    "coordinates": [
      -94.467136,
      39.090707
    ],
    "type": "Point"
  }

**
] 

/* -- FORMLY CONTROLLER SNIPPET --*/
{
   "key": "fullname",
   "type": "input",
   "templateOptions": {
      "type": "text",
      "placeholder": "fullname"
   }
},

**{ 
   "key": "geocode.coordinates[0]",
   "type": "input",
   "templateOptions": {
      "type": "text",
      "placeholder": "geocode"
   }
}**    

【问题讨论】:

  • 我的意思是,您总是可以解析结构并将其转换为您自己的结构,即形式上的平面键/值对,然后在提交回服务器之前将其转换回来。
  • 不确定您的"key": "geocode.coordinates[0]" 有什么问题,这不起作用吗?请使用:help.angular-formly.com 创建一个示例
  • 你的问题有什么更新吗?

标签: angularjs angular-formly


【解决方案1】:

您可以获得价值,而无需将其命名为一些疯狂的东西。它应该按你的方式工作,但我的意思是,我的上帝,这太丑了。

只需将 defaultValue 设置为 geolocation 的值......

key: 'CoordinateX',
defaultValue: 'model.geocode.geolocation.coordinates[0]'

或在其上添加控制器以获取它

key: 'CoordinateX',
controller: function($scope) {
 $scope.model.CoordinateX = $scope.model.geocode.geolocation.coordinates[0];
}

那么您可以简单地使用 CoordinateX 或任何您想命名的名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 2019-05-05
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2019-01-26
    • 2018-12-19
    • 1970-01-01
    相关资源
    最近更新 更多