2014-10-20 45 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