2017-05-27 4 views
1

Looping durch ng-Wiederholung ist einfach, weil Sie Json-Objekt haben und durch Tasten können Sie Schleifen und Daten sammeln, wie Sie wollen. Mein Problem hier ist, wie man durch spezifischen Bereich oder Eingabe durchläuft, um Werte in ng-repeat zu bekommen, aber nicht in json-Objekt enthalten?Looping durch den Bereich mit Angularjs

hier vollständige Code ist: https://jsfiddle.net/medoo/wgc1my7d/

Erklärung

ich ohne Schlüssel wie dieser

var arr = ["~\\191746.JPG", "~\\191848.JPG", "~\\191908.JPG"]; 

Dann sehr einfaches Objekt haben, aufgelistet ich diese Werte in diesem einfach strukturierten Tabelle wie folgt

<div data-ng-app="myApp" data-ng-controller="myCtrl"> 
     <table id="fils"> 
      <tr data-ng-repeat="oneFile in ShowFiles"> 
       <td style="border: 1px solid #000000">{{oneFile}}</td> 
       <td style="border: 1px solid #000000"> 
        <input data-ng-model="naming" type="text" style="width: 200px" /> 
        <%--here is my problem !!! 
        i need to get values of element "input" or scope "naming" which not included with ShowFiles --%> 
       </td> 
      </tr> 
     </table> 
     <input id="save" data-ng-click="save()" type="button" value="Save" /> 
     <div id="msg"></div> 
    </div> 


    <script> 
    var arr = ["~\\191746.JPG", "~\\191848.JPG", "~\\191908.JPG"]; 
    var app = angular.module("myApp", []); 
    app.controller("myCtrl", function ($scope) { 
     $scope.ShowFiles = arr; 

     $scope.save = function() { 
      var msg = document.getElementById("msg"); 
      var index = 0; 
      $scope.ShowFiles.forEach(function (oneFile, naming) { 
       msg.innerHTML = 
       msg.innerHTML + 'row #' + (index++) + ': ' + JSON.stringify(oneFile) + ' --- ' + naming + '<br />'; 
      }); 
     }; 
    )}; 
    </script> 

Alles was ich brauche, wenn ich #save Taste sammeln alle Daten für zwei Spalten drücken, ob
(eingeschlossen in scope „Showfiles“ wie {{OneFile}})
OR
(nicht in den Gültigkeitsbereich eingeschlossen „Showfiles“ so als [Eingangsdaten-ng-Modell = "Benennung"]) - "Problem hier"

als der folgenden

OneFile angezeigt --- Benennung
Zeile # 0: „~ \ 191746.JPG "---" Tiere "
Reihe # 1:" ~ \ 191848.JPG "--- "Cars"
Zeile # 2: "~ \ 191908.JPG" --- "Friends"

Aber leider zeigt Seriennummern wie diese 0,1,2

Antwort

0

Namensgebung Um diese Arbeit zu machen, die Sie benötigen ersetzen Sie die Eingabe-Element-Tag mit diesem:

<input data-ng-model="fileNames[$index]" type="text" style="width: 200px" /> 

und Ihrem Controller-Code dazu:

var arr = ["~\\191746.JPG", "~\\191848.JPG", "~\\191908.JPG"]; 
var app = angular.module("myApp", []); 
app.controller("myCtrl", function ($scope) { 
    $scope.ShowFiles = arr; 
    $scope.fileNames = []; 

    $scope.save = function() { 
     var msg = document.getElementById("msg"); 
     $scope.ShowFiles.forEach(function (oneFile, index) { 
      msg.innerHTML = 
      msg.innerHTML + 'row #' + (index + 1) + ': ' + JSON.stringify(oneFile) + ' --- ' + $scope.fileNames[index] + '<br />'; 
     }); 
    }; 
});