2016-06-10 3 views
3

Ich versuche, eine Verwendung von JSON-Datei erstellen. So habe ich eine JSON-Datei, die ich es in meinem HTML mit eckigen js aufrufen Ich bekomme ein Problem, wenn ich auf Speichern klicken, die ng-klick verwendet, hier versuche ich, das Array von Benutzer wie folgt zu verwenden:Wie winkelig js Formular mit ng-klicken Sie

 <div ng-repeat="x in myWelcome.definition.attributes"> 
     <div ng-repeat= "y in x.children "> 
      <div ng-if ="y.rm_type_name == 'DV_TEXT'"> 
      <input type="{{ y.node_id }}" name="{{ y.node_id }}" ng-model="user[y.node_id]"> 
      </div> 
      <div ng-if ="y.rm_type_name == 'DV_CODED_TEXT'"> 
      <input type="{{ y.node_id }}" name="{{ y.node_id }}" ng-model="user[y.node_id]"> 
      </div> 

     </div> 
     <h1>You entered: {{user}}</h1> 

     </div> 
     <input type="submit" ng-click="update(user)" value="Save" /> 

Und mein Controller wird wie folgt aussehen:

 $scope.update = function(user) { 
     console.log(user); 
    }; 

ich bin der undefined in meiner Konsole ist hier die Plunker bekommen: https://plnkr.co/edit/62g4YhkowQtwkyBOPKi5?p=preview

Antwort

2

Sie benötigen nur eine Zeile hinzufügen, und ich denke, dass die Verwendung dieses in Ihrem Controller und keine Änderungen mehr funktionieren:

var app = angular.module('myApp', []); 
    app.controller('myCtrl', function($scope, $http) { 
     $scope.master = {}; 
     $scope.user = {}; 
     $scope.update = function(user) { 
     $scope.master = angular.copy(user); 
     $scope.user = {}; 
     console.log(user); 
     }; 
     $http.get("data.json") 
     .then(function(response) { 
      $scope.myWelcome = response.data; 
     }); 
    }); 

Sie müssen dies nur $ scope.user in Ihrem Controller = hinzufügen {} ; und es wird funktionieren

0

Gerade Änderung ng-click = "Update (Benutzer)" an ng-submit = "update (user)" mit derselben Definition

+0

nicht funktioniert, warum es nicht mit Arbeits ng Sie auf einem meiner Beispiel große funktioniert, aber was ist das Problem hier bitte können Sie die Plunker sehen und helfen Ich löse dies –

+0

Verwenden Sie diese data-ng-click = "update (Benutzer)" Ihr planer funktioniert bereits :) – Vitalii

+0

Haben Sie noch ein Problem zu sehen? – Vitalii

0

Ich denke, Sie vergessen das Bootstrapping des AngularJS. Fügen Sie es in Ihrem Projekt das Snippet unten verwenden:

var app = angular.module('app', []); 

app.controller('test', function($scope) { 
    // your code goes here 
}); 

Uhr die Probe demo für das gleiche.

+0

ng-model = "user [y.node_id]" funktioniert das in obiger Antwort es funktioniert –

+0

Entschuldigung, ich habe dich nicht verstanden. – Shashank

+0

statt Benutzer.xyd zu schreiben, warum kann ich nicht schreiben Benutzer [xyz] –

1

wie diese versuchen, ist es eine Probe ein

<form class="form-horizontal" role="form" ng-app="myApp" ng-controller="MyCtrl"> 

<input class="form-control" id="tittle" placeholder="tittle" ng-model="formInfo.tittle"> 

<input class="form-control" id="name" placeholder="Name" ng-model="formInfo.Name"> 

<button type="submit" ng-click="saveData()" class="btn btn-success">save</button> 

</form> 

var app=angular.module('myApp', []); 
    app.controller('MyCtrl', ['$scope', function($scope) { 
    $scope.formInfo = {}; 
    $scope.saveData = function() { 
    console.log($scope.formInfo); 
    } 
    }]); 
Verwandte Themen