2016-05-15 8 views
0

bearbeiten: Syntaxfehler.Angular: Wie kann ich auf ein Objekt innerhalb einer Bereichsliste zugreifen und dieses ändern?

in meiner Anwendung, bevor ein Artikel in die Datenbank gebucht wird, möchte ich es ändern. Hier

ist, was ich versucht habe:

$scope.submitForm = function() { 
     $scope.input[2] = 9001; 
     $http.post('database/entries', $scope.input) 
      .success(function (data) { 

      }).error(function (data) { 

      }); 
    }; 

Als Referenz $ scope.input wie folgt aussieht:

{"name":"matt","code":"a21","powerLevel":5,"isAwesome":true} 
+0

Sie scheinen Ihre Syntax ein bisschen off hier zu haben. '$ scope.input' scheint ein Objekt und kein Array zu sein und hat keine Eigenschaft namens' 2', die gesetzt werden kann. Es ist nicht genau klar, was Sie wirklich ändern wollen, aber wenn Sie versuchen, 'powerLevel' zu ändern (was' [2] 'wäre, wenn es ein Array wäre), dann' $ scope.input.powerLevel = 9001; 'sollte funktionieren ... – Claies

Antwort

0

Hallo, ich hoffe, dass dieses Beispiel helfen Ihnen, um herauszufinden, wie kann ein abject aus der Liste [array] finden.

In diesem Beispiel verwenden wir $ filter, um in der Liste zu suchen; [Können Sie das Beispiel & Check Browser-Konsole ausführen]

angular.module("myApp", []) 
 

 
.controller("ctrl", function($scope, $filter){ 
 
    
 
    $scope.list = [ 
 
     
 
     {"name":"matt","code":"a21","powerLevel":5,"isAwesome":true}, 
 
     {"name":"jon","code":"a22","powerLevel":5,"isAwesome":true}, 
 
     
 
    ]; 
 
     
 
     
 
    $scope.findItemInTheList = function(item){ 
 
     //search by code : you can do it by anything 
 
     var findItem = $filter("filter")($scope.list, {code: item.code}, true)[0]; 
 
     findItem.name = "change it"; 
 
     findItem.powerLevel = "change it"; 
 
     findItem.isAwesome = "change it"; 
 
     console.log(findItem); 
 
    }; 
 
    
 
    
 
});
<html> 
 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
    </head> 
 
    <body ng-app="myApp" ng-controller="ctrl"> 
 
    
 
     <ul> 
 
     <li ng-repeat="item in list"> 
 
      {{item.name}} 
 
      <button ng-click="findItemInTheList(item)">modify & post</button> 
 
     </li> 
 
     </ul> 
 
    
 
    </body> 
 
</html>

Verwandte Themen