2016-05-15 67 views
0

编辑:语法错误。Angular:如何访问和修改范围列表中的项目?

在我的应用程序中,在项目发布到数据库之前,我想对其进行修改。

这里是我已经试过:

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

      }).error(function (data) { 

      }); 
    }; 

仅供参考,$ scope.input样子:

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

你似乎有你的语法有点过这里。 '$ scope.input'似乎是一个对象,而不是一个数组,并且没有可以设置的名为'2'的属性。这并不完全清楚你真的想改变什么,但是如果你想改变'powerLevel'(这是'[2]'如果它是一个数组的话'''),那么'$ scope.input.powerLevel = 9001; '应该工作... – Claies

回答

0

嗨,我希望这个例子可以帮助您找出如何可以从列表[array]中找到一个abject。

在这个例子中,我们使用$ filter来搜索列表; [您可以运行例如&检查浏览器控制台]

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>