vendredi 22 septembre 2017

Values not updating for dynamically added field in angular js

I have created a form where fields are added dynamically.Adding works perfectly but the problem i am facing is when i am updating it.In the form there are two textboxes , a text area and a checkbox. Checkbox is checked depending upon the condition of a database field.At the time of editing all values are getting updated but the checkbox value is always getting set to true if i also unchecked the checkbox.

Below the code i am using

The Json i am receiving

$scope.choices = {"success":"yes","msg":"","data":{"checkListValues":[{"id":"81","checklist_id":"1","number":"1","short_text":"shorttext 12","long_text":"longtext12","is_photo":"1"},{"id":"82","checklist_id":"1","number":"2","short_text":"shorttext21","long_text":"longtext22","is_photo":"1"}]}}

In the html Part

<tr data-ng-repeat="choice in choices track  by $index">
 <td>
    <div class="number-part">
    <input type="text" ng-model="choice.number" required />
    </div>
</td>
<td>
    <div class="shorttext-part">
    <input type="text" ng-model="choice.short_text" ng-trim="false" maxlength="40" required/>
    <div class="clearfix"></div>
    <span class="character-count">40 Characters left</span>

    </div>
</td>
<td>
<div class="shorttext-part">
<textarea ng-model="choice.long_text" ng-trim="false" maxlength="255" required></textarea>
<div class="clearfix"></div>
<span class="character-count">255 Characters left</span>
</div>
</td>
<td>
    <input type="checkbox"  ng-checked="choice.is_photo == 1" ng-model="choice.is_photo"/>
</td>
<td>
    <a ng-if="!$first"  ng-click="removeChoice($index)">
    <i class="fa fa-minus"></i>
    </a>
</td>

And In the angular js controller

$scope.removeChoice = function(z)  
{
  var lastItem = $scope.choices.length-1;
  $scope.choices.splice(z,1);
};

$scope.addNewChoice = function() 
{
  var newItemNo = $scope.choices.length+1;
  $scope.choices.push({'id':'choice'+newItemNo});

     //console.log("=====",$scope.choices);
};
$scope.item = [];
var newItem = {};
for( var i in $scope.choices)
{
   newItem= $scope.choices[i];
   $scope.item.push(newItem);
} 

So how to do that if a checkbox is selected at the time of editing and if i unchecked it the value should be updated in the $scope.choices. Working for the text box and text area... problem is happening only with the checkbox




Aucun commentaire:

Enregistrer un commentaire