1

Bir web hizmetinden bir JSON'dan yapılmış bir tablo göstermeye çalışıyorum ve sonra bir dizi oluşturuyorum. Dizi uzunluğu 0'dır ve bir düğmeyi tıkladığımda diziye 1 öğe eklerim ve tabloya yeni bir satır eklerim. Düğmeye tıkladığımda bana dizideki elemanı eklemiyor ve nedenini bilmiyorum. Aynı kontrolörde ve görünümde 2 farklı ng tekrarı olması mümkün mü?Tek bakışta birden çok yineleme -

assets.controller('EditaTipusCtrl', function ($scope, $http, $routeParams) { 
       $http.get('http://10.0.203.73/WS/ws.php/tipusactius/getDetails/' + $routeParams.id).success(function (data) { 
        $scope.atrb = data; 
       }); 

       $scope.nousAtributs = []; 

       $scope.addNewLine = function() { 
        var newRow = { 
         "nomAtribut": "", 
         "tipus": "", 
         "mida": '', 
         "prioritat": "", 
         "obligatori": "", 
         "observacions": "", 
         "nomTipusActiu": $routeParams.id // nom del tipus d'actiu 
        }; 
        $scope.nousAtributs.push(newRow); 
       //  return $scope.nousAtributs; 
       } 

      }); 

Ve manzarası: Çözüldü

<div class="col-md-10"> 
    <div ng-controller="EditaTipusCtrl" id="test"> 
     <div class="row"> 
      <button class="btn btn-default" > 
       <span class="glyphicon glyphicon-plus" aria-hidden="true" ng-click="addNewLine()"></span> 
       Afegir atribut 
      </button> 
     </div> 
     <br /> 
     <table class="table"> 
      <tr> 
       <th>#</th> 
       <th><a href="" ng-click="sortField = 'ordre'; reverse = !reverse">Prioritat</a></th> 
       <th><a href="" ng-click="sortField = 'nomAtribut'; reverse = !reverse">Atribut</a></th> 
       <th><a href="" ng-click="sortField = 'midaAtribut'; reverse = !reverse">Mida</a></th> 
       <th><a href="" ng-click="sortField = 'atributObligatori'; reverse = !reverse">Obligatori</a></th> 
       <th><a href="" ng-click="sortField = 'observacions'; reverse = !reverse">Observacions</a></th> 
      </tr> 
      <tr ng-repeat="(key, value) in atrb"> 
       <td></td> 
       <td> 
        <input type="number" ng-model="value.ordre" value="value.ordre" /> 
       </td> 
       <td> 
        <input type="value.valor" ng-model="value.nomAtribut" value="value.nomAtribut" /> 
       </td> 
       <td> 
        <input type="value.valor" ng-model="value.midaAtribut" value="value.midaAtribut" /> 
       </td> 
       <td> 
        <input type="checkbox" ng-model="value.atributObligatori" value="value.atributObligatori" ng-true-value="'Si'" ng-false-value="'No'" /> 
       </td> 
       <td> 
        <input type="value.valor" ng-model="value.observacions" value="value.observacions" /> 
       </td> 
      </tr> 
      <tr ng-repeat="a in nousAtributs"> 
       <td></td> 
       <td> 
        <input type="number" ng-model="a.ordre" value="a.ordre" /> 
       </td> 
       <td> 
        <input type="a.valor" ng-model="a.nomAtribut" value="a.nomAtribut" /> 
       </td> 
       <td> 
        <input type="a.valor" ng-model="a.midaAtribut" value="a.midaAtribut" /> 
       </td> 
       <td> 
        <input type="checkbox" ng-model="a.atributObligatori" value="a.atributObligatori" ng-true-value="'Si'" ng-false-value="'No'" /> 
       </td> 
       <td> 
        <input type="a.valor" ng-model="a.observacions" value="a.observacions" /> 
       </td> 
      </tr> 
     </table> 
     <button class="btn btn-default" > 
      <span class="glyphicon glyphicon-floppy-disk" aria-hidden="true"></span> 
      Guardar 
     </button> 
    </div> 
</div> 

:

Orada

kontrolör olan

Ben düğme etiketi yerine span etiketi üzerinde ng tıklayın koydu

Saygılarımızla

+2

konsolda hatalar alıyorsunuz görüyor musunuz? 'NewRow' üzerinde ayarladığınız özellikler, tablonuzda çıkmaya çalıştığınız özellikleri eşleştirmiyor gibi görünüyor. Örneğin, ilk sütununuz "ng-model =" a.ordre "' dır, ancak oluşturduğunuz 'newRow' nesnesinde" ordre "özelliği yoktur. – Lex

+0

Düğme etiketi yerine düğme etiketini tıklatıyorum. Yine de teşekkürler – proktovief

cevap

1

Tıklamanız, düğme etiketinde

0

açık olmamalıdır. Ne yapmak istediğinizi ng-repeat-start ve ng-repeat-end gerektirir. Yani sahip olursun;

<tr ng-repeat-start="(key, value) in atrb"> 
    <td></td> 
    <td> 
     <input type="number" ng-model="value.ordre" value="value.ordre" /> 
    </td> 
    <td> 
     <input type="value.valor" ng-model="value.nomAtribut" value="value.nomAtribut" /> 
    </td> 
    <td> 
     <input type="value.valor" ng-model="value.midaAtribut" value="value.midaAtribut" /> 
    </td> 
    <td> 
     <input type="checkbox" ng-model="value.atributObligatori" value="value.atributObligatori" ng-true-value="'Si'" ng-false-value="'No'" /> 
    </td> 
    <td> 
     <input type="value.valor" ng-model="value.observacions" value="value.observacions" /> 
    </td> 
</tr> 
<tr style="display:none;" ng-repeat-end></tr> 
<tr ng-repeat-start="a in nousAtributs"> 
    <td></td> 
    <td> 
     <input type="number" ng-model="a.ordre" value="a.ordre" /> 
    </td> 
    <td> 
     <input type="a.valor" ng-model="a.nomAtribut" value="a.nomAtribut" /> 
    </td> 
    <td> 
     <input type="a.valor" ng-model="a.midaAtribut" value="a.midaAtribut" /> 
    </td> 
    <td> 
     <input type="checkbox" ng-model="a.atributObligatori" value="a.atributObligatori" ng-true-value="'Si'" ng-false-value="'No'" /> 
    </td> 
    <td> 
     <input type="a.valor" ng-model="a.observacions" value="a.observacions" /> 
    </td> 
</tr> 
<tr style="display:none;" ng-repeat-end></tr> 

docs here

+0

OP'nin 'ng-repeat' kullanımı doğrudur ve' ng-repeat-start' ve 'ng-repeat-end' gerektirmez. – Lex

İlgili konular