2016-04-06 14 views
2

Json'dan bir nesne alan bir işleve sahibim ve anahtar-değer çiftlerini ng-tekrarda listeliyorum. Değerin doğru/yanlış olduğu bir formdur ve buna bağlı olarak kontrol edilir veya edilmez.Anahtar-değer çiftlerini ng-modeliyle çalışmak için geçirin

<form class="form-horizontal"> 
    <div class="form-group form-group__bordered" 
     ng-repeat="(key, value) in listOfNotificationTypes"> 

    <label for="inputEmail3">{{ key | trimkey }}</label> 

    <div class="checkbox-wrapper"> 
     <input type="checkbox" class="checkbox" ng-checked="{{value}}"> 
    </div> 
</div> 

<div class="form-group"> 
    <div class="col-12 clearfix"> 
     <a href="#" class="btn" 
      ng-click="updateNotificationSettings()"> 
     SAVE 
     </a> 
    </div> 
</div> 
</form> 

Hepsi iyi çalışıyor, ama ne isteyen değişti anahtar-değer çiftleri almak ve ben TASARRUF düğmesinin vurduğunda başka fonksiyonu yoluyla göndermek için de.

nasıl ben veri yakalama ng-modeli kullanmak gerekir herhalde

{ 
    "key1":"value1", 
    "key2":"value2", 
    "key3":"value3", 
    ... 
    } 

gibi pek Doğru json formatında geçti ng-modelinde girdi olarak bağlanabildiği, ancak tam olarak nasıl bilmiyorum halletmek için.

+0

Bir liste veya nesne alıyor musunuz? Bu "{" key1 ": true," key2 ": false, key3": false}; 'bundan çok farklıdır. [{Key:" key1 ", value: false}, anahtar:" key2 ", value: true }, {key: "key3", value: false}]; ' –

+0

Bu bir json nesnesidir, ancak tam olarak belirttiğim gibi iletmem gerekiyor, yani temelde sadece bir" {"anahtar" listesine ihtiyacım var: "value", "key": "value"} ' – desicne

+0

Ama bu bir liste değil, ama sadece bu girdiyi sizin yerine kullanmalısınız '' ve işlev updateNotificationSettings değerinin "$ scope.listOfNotificationTypes" değeri true veya false gibi değerleri yansıtacaktır. –

cevap

1

Yani, nesne türünüz için bu girişi kullanmanız gerekecektir. İşte

<input type="checkbox" class="checkbox" ng-model="listOfNotificationTypes[key]"> 

uygulamasını gösteren plunker olduğunu.

Notlar: kullanıcı arabiriminde bu durum için bu

[ 
    {key: "key1", value: false}, 
    {key: "key2", value: true}, 
    {key: "key3", value: false} 
    ]; 

gibi nesnelerin bir listede kodu o nesneyi dönüştürmek gerekebilir gelecekte Sadece bir kaç not

olacak
<div class="form-group form-group__bordered" ng-repeat="notification in listOfNotificationTypes"> 
<label for="inputEmail3">{{ notification.key }}</label> 
    <div class="checkbox-wrapper"> 
    <input type="checkbox" class="checkbox" ng-model="notification.value"> 
    </div> 
</div> 
İlgili konular