从ng-model中的JSON数组中选择要显示的元素

时间:2014-08-13 22:51:21

标签: json angularjs

我有一个JSON对象,它有(内部)一个对象数组。我想在输入中显示一个(活动的),而在跨度列表中显示其他(或div或标签,不关心)。

元素如下所示:

[{
    name:"myName",
    age: "myAge",
    items:[
        {
            itemName:"someName1",
            itemIsActive:false
        },
        {
            itemName:"someName2",
            itemIsActive:true
        },
        {
            itemName:"someName3",
            itemIsActive:false
        },
    ]
}]

项数组大小不确定(甚至可以为空)。

我想要得到的结果就是这个:

<input type="text" ng-model="{{here goes the active one}}">

<span>{{here goes the first that is not active}}</span>
<span>{{here goes the next that is not active}}</span>
<span>{{and so on}}</span>

感谢。

1 个答案:

答案 0 :(得分:0)

嗯,有一种方法可以做到以下几点。

HTML模板

<div ng-repeat="current in data">
  <div ng-repeat="item in current.items">
    {{ item.itemName }}
    <input 
      type="radio" 
      ng-value="item"
      ng-model="$parent.currentItem" />
  </div>

  <hr />

  <div ng-show="currentItem"> 
    <input ng-model="currentItem.itemName" />
    <div ng-repeat="current in data">
      <ul>
        <li 
          ng-repeat="item in current.items" 
          ng-show="item !== currentItem">
            {{ item.itemName }}
        </li>
      </ul>
    </div>
  </div>
</div>

<小时/> imgur


此处相关的plunker http://plnkr.co/edit/M8y1vQ