2016-05-16 4 views
0

Ich mache eine Anwendung von ionischen und arbeiten zusammen mit Laravel-Server. Das Problem ist, ich habe eine Liste von Artikeln auf meinem Server speichern. In der ionischen Anwendung werde ich Informationen vom Server anfordern, um ein Formular zu erstellen. Ich habe meinen Code hier,AngularJS: binden unvorhersehbare Menge an Eingabe in einem Formular

<div ng-repeat="itemGroup in mydata"> 
    <div class="item item-divider nn-card-header"> 
     {{itemGroup.name}} 
    </div> 
    <ion-list> 
     <ion-item ng-repeat="item in itemGroup.items"> 
      <h3>{{ item.name }}</h3> 
      <div class="item range range-positive"> 
       broken 
       <input type="range" id="{{ item.idgB }}" min="0" max="{{ item.max }}" ng-model="item.idgB" ng-init="item.idgB=0"> 
       {{ item.idgB }} 
      </div> 
      <div class="item range range-positive"> 
       missing 
       <input type="range" id="{{ item.idgM }}" name="volume" min="0" max="{{ item.max }}" ng-model="item.idgM" ng-init="item.idgM=0"> 
       {{ item.idgM }} 
      </div> 
     </ion-item> 
    </ion-list> 
    </div> 

dass mydata diese json Daten:

[{ 
    "name":"name", 
    "items":[{ 
     "id":1, 
     "name":"itemA", 
     "max":2, 
     "idgM":"m.3.1.1", 
     "idgB":"b.3.1.1" 
    }] 
}] 

Meine Frage ist, ich weiß nicht, wie Wert von dem Eingang zu bekommen, weil ich nicht jquery verwenden kann Element finden. Ich habe eine Idee, dass ich die Liste aller eindeutigen IDs von Elementen vom Server zur Anwendung senden werde. Aber ich weiß nicht, wie man ng-model Daten erhält, indem man Zeichenkettenvariable verwendet.

Antwort

0

Sie nicht jQuery müssen den Wert von dem Eingang zu erhalten, müssen Sie Ihr Array von Objekten, die Sie Looping:

itemGroup.items 

und in Ihrem Code Sie jedes Objekt dieses Arrays sind verbindlich mit:

ng-repeat="item in itemGroup.items" 
ng-model="item.idgB" 
ng-model="item.idgM 

dann erwarte ich, dass diese Werte als idgB und idgM Eigenschaften jedes Element Ihrer itemGroup.items Array haben

aber, da Sie verwenden:

ng-repeat="itemGroup in mydata" 

die ItemGroup (n) sich Elemente des mydata Array, dann in Ihrem Controller, um diese Eingaben auf Daten zuzugreifen, sollten Sie etwas wie dieses:

angular.forEach(mydata, function(itemGroup, key) { 
    angular.forEach(itemGroup, function(item, key) { 
    console.log("First input value: " + item.idgB); 
    console.log("Second input value: " + item.idgM); 
    }); 
}); 
+0

Vielen Dank für Ihre Antwort. aber ich habe immernoch eine Frage, kann ich trotzdem '' '' '$ scope.name'''' verwenden, während ich' '' name'''' als Stringvariable habe. –

+0

sicher, $ scope.name in Ihrem Controller ist an {{Name}} Ihrer Ansicht gebunden – ShinDarth

0

Der Wert aus der Eingabe wird im Modell gespeichert, sodass Sie das Element , das Sie bereits verwenden, nicht benötigen.

ist hier Hilfe, wie Eingabe verwendet in Winkel: https://docs.angularjs.org/api/ng/directive/input

+0

für Knighty Ra: Sagen Sie mir auch, wo und wie Sie diesen Eingabewert verwenden möchten. –

+0

Ich möchte alle Werte per Ajax an den Server senden, wenn Sie auf eine Schaltfläche klicken. Ich weiß nicht, wie ich all diese Dinge machen soll. Danke für deine Hilfe. –

+0

müssen Sie meine Daten zurück zum Server posten. Mydata wird alle neuen Werte haben, aber ich weiß nicht, wie man das für "Laravel Server" macht, weil ich es nicht benutze. das ist, was Sie überprüfen müssen http://stackoverflow.com/questions/31454024/how-to-send-data-from-angular-js-to-laravel-5-server –

Verwandte Themen