2016-11-27 22 views
0

我有一个练习,我必须能够自定义笔记本电脑的某些选项。我从数据库中加载这个选项。有四种可能的选择:RAM,处理器,视频,屏幕。对于输入模型,我想分别设置ng-model根据内容更改ng-model内部ng-repeat

<div class="text-center"> 
<div class="marginTop"> 

    <p>{{laptop.selected.text}}</p> 

    <div class="row" ng-repeat="x in laptop.customize"> 
     <div class="col-xs-3"> 
      <p>{{x.name}}</p> 
     </div> 
     <div class="col-xs-9"> 
      <label class="radio-inline" ng-repeat="y in x.options"> 
       <input type="radio" name="{{x.name}}" ng-model="laptop.selected.{{x.name}}" ng-value="y.description">   {{y.description}} 
      </label> 
     </div> 
    </div> 

    <div class="col-xs-12"> 
     <a href="#order" ng-click="laptop.save()" class="btn btn-default" type="submit">En door</a> 
    </div> 
</div> 

的目标是设置ng-model="laptop.selected.RAM"或,但我找不到任何方式做到这一点。

打扰我的html,我是一个noob。

[编辑] JSON在laptop.customize

[ 
{ 
"name": "RAM", 
"options": [ 
    { 
    "id": 1, 
    "description": "4gb", 
    "customizationlaptopid": 1, 
    "pricedifference": -50 
    }, 
    { 
    "id": 2, 
    "description": "6gb", 
    "customizationlaptopid": 1, 
    "pricedifference": 0 
    }, 
    { 
    "id": 3, 
    "description": "8gb", 
    "customizationlaptopid": 1, 
    "pricedifference": 100 
    } 
] 
}, 
{ 
"name": "Processor", 
"options": [ 
    { 
    "id": 4, 
    "description": "i3 2.3Ghz", 
    "customizationlaptopid": 2, 
    "pricedifference": -100 
    }, 
    { 
    "id": 5, 
    "description": "i5 2.7Ghz", 
    "customizationlaptopid": 2, 
    "pricedifference": 0 
    }, 
    { 
    "id": 6, 
    "description": "i7 3.2GHz", 
    "customizationlaptopid": 2, 
    "pricedifference": 150 
    } 
] 
}, 
{ 
"name": "Video", 
"options": [ 
    { 
    "id": 7, 
    "description": "NVidia 720M 1GB", 
    "customizationlaptopid": 3, 
    "pricedifference": -100 
    }, 
    { 
    "id": 8, 
    "description": "Nvidia 740N 2GB", 
    "customizationlaptopid": 3, 
    "pricedifference": 0 
    }, 
    { 
    "id": 9, 
    "description": "Nvidia 980NX 6GB", 
    "customizationlaptopid": 3, 
    "pricedifference": 200 
    } 
] 
} 
] 
+0

后你有laptop.customize – Sajeetharan

回答

1

您只要设定这样的,因为你已经y中保存的值,你也可以使用NG-变化得到的选定值

<div class="marginTop"> 
    <p>{{laptop.selected.text}}</p> 
    <div class="row" ng-repeat="x in laptop.customize"> 
     <div class="col-xs-3"> 
      <p>{{x.name}}</p> 
     </div> 
     <div class="col-xs-9"> 
      <label class="radio-inline" ng-repeat="y in x.options"> 
       <input type="radio" name="{{x.name}}" ng-model="laptop.selected[y.name]" ng-change="getselected(y)" ng-value="y.description">   {{y.description}} 
      </label> 
     </div> 
    </div> 
    <div class="col-xs-12"> 
     <a href="#order" ng-click="laptop.save()" class="btn btn-default" type="submit">En door</a> 
    </div> 
</div> 

DEMO

+0

的JSON如何使用日那么在javascript中的值呢? – Stefan

+0

你可以发布json,我将创建一个样本 – Sajeetharan

+0

添加了json,谢谢 – Stefan