javascript - AngularJs - 在 ng-repeat 中执行函数

标签 javascript angularjs

我的网络应用程序应该从服务器获取图像,显示它们,并提供投票喜欢或不喜欢的可能性。 投票将存储在数据库中。

我的 Controller :

$scope.beginSearch = function () {
    $http
       .get("http://example?q=" + $scope.search )
       .then(function (response) {
            $scope.url = response.data.data;
            });
};

<tr ng-repeat="x in url">
   <th>
     <img src="{{x.images}}"></img>
     <div class="well">
         <i class="fa fa-thumbs-o-up fa-2x vertical-align" ng-click="vote_up(x.id)"></i>
         <i class="fa fa-thumbs-o-down fa-2x vertical-align" ng-click="vote_down(x.id)" ></i>
     </div>
   </th>
</tr>

我希望在每个 ng-repeat 中使用一个函数,它会返回 投票给喜欢

{{ return_vote(x.id)}} 

但它不起作用,据我所知,我不应该在 html 中使用函数, 如果它们不在 ng-click 函数中。

ng-init 也不起作用。

有人可以帮助我吗?我该如何解决我的问题?

图片在某个网站上,我只是使用他们的WEB-API获取它们,所以他们没有投票的API,我需要自己做。

最佳答案

您可以在方括号{{yourFunction(x.id)}}内调用您的函数,并添加逻辑以在内部获取投票。

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.url = [{
    images: "http://lorempixel.com/g/100/100/",
    id: 1
  }, {
    images: "http://lorempixel.com/100/100/",
    id: 2
  }]
  $scope.getVotes = function(id){
    //logic to get number of votes
    return id * 5;
  }
  
  $scope.vote_up = function(id){
    console.log("Vote up id " + id); 
  }
  
  $scope.vote_down = function(id){
    console.log("Vote down id " + id); 
  }
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp" ng-controller="myCtrl">
  <div ng-repeat="x in url">
    <img src="{{x.images}}" />
    <p>{{getVotes(x.id)}} votes</p>
      <i class="fa fa-thumbs-o-up fa-2x vertical-align" ng-click="vote_up(x.id)"></i>
      <i class="fa fa-thumbs-o-down fa-2x vertical-align" ng-click="vote_down(x.id)"></i>
  </div>
</body>

关于javascript - AngularJs - 在 ng-repeat 中执行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41166430/

相关文章:

javascript - 禁用卫星弹出窗口标题栏

javascript - 需要再添加一个onClick事件

javascript - 主干多监听

javascript - Protractor :如何在 ui-grid 中滚动几次

javascript - 如何在angularjs中的$resource对象中使用@id

javascript - 更新 ng-if 变量后,Angular 显示空屏

javascript - WinJS.UI.Repeater 项目到对象方法的事件处理程序绑定(bind)

javascript - EXTJS 组合框多选

javascript - 使用 AngularJS 将除所选单选按钮之外的值设置为 False

angularjs - Angular ui引导 Accordion : How do I properly $watch the is-open attribute?