2014-10-20 47 views
0

我该如何调用函数一次。 当我这样做时,调用它循环。 HTML:从控制器调用函数。找到索引值。AngularJS http后循环

<body ng-controller="MainCtrl"> 
     <div ng-repeat="id in arr"> 
    {{sendPost(id)}} 
     </div> 
    <br> 
     {{namestr}} 
    </body> 

JS:对于价值的功能要求服务器

app.controller('MainCtrl', function($scope, $http) { 
    $scope.arr=[]; 
    $scope.arr.push(1); 
    $scope.arr.push(2); 
    $scope.arr.push(3); 
    $scope.namestr=""; 
    $scope.newName = ""; 
    $scope.sendPost = function(names) { 
     $scope.namestr=$scope.namestr+' '+names; 
     var data = $.param({ 
      json: JSON.stringify({ 
       name: names 
      }) 
     }); 
     $http.post("/echo/json/", data).success(function(data, status) { 
      //select from database 
      if (data==1){ 
      return '1111' 
      } else { 
      return '2222' 
      } 
     }) 
    }        
    }); 

http://plnkr.co/edit/Zhao5JuEeuG1KGXNhLS0?p=preview

回答

1

这是一般

{{sendPost('Василий')}} 

sendPost方法连同其http.post会坏主意用每一个$ digest过程调用,并且$ digest由模型变化触发,所以这个

$scope.hello = data; 

会导致另一个$消化和另一个HTTP请求,更多地解释你想达到什么,我会延长你的plunker

+0

我有表的指令。指令接收数据并呈现表格。在渲染时,根据字段的类型,来自目录的值字段请求。数据库中的目录。该指令从主控制器的链接上调用一个函数并接收该字段的值。 – Gopard 2014-10-20 09:56:26

+0

''+ '{{ngDirectiveFunc({valueId:row [fields.colvalue],directName:fields .direct})}}'+ – Gopard 2014-10-20 09:57:10