在ng-repeat- AngularJS中不使用ng-click调用函数

时间:2014-06-12 06:27:53

标签: angularjs angularjs-ng-click

我有以下代码:

<div ng-repeat="dateDetails in visitsDates | orderBy : dateDetails.date | filter : contactid | limitTo : 1">
    <tr>
        <td>Joint Work</td>
        <td>{{dateDetails.joint_work}}</td>
    </tr>
    <tr>
        <td>Gap</td>
        <td><a href="" ng-click="gap(dateDetails.date)">Click Me</a></td>
    </tr>
</div>

在上面的代码中,我已经进行了ng-click,之后调用了该函数。但是默认情况下必须调用该函数,以便填充其中一列,这不会发生。函数'gap'将$ scope.gap设置为今天的日期和传递给它的日期之间的差异。我该如何解决这个问题呢?

2 个答案:

答案 0 :(得分:4)

如果必须使用标记,可以使用ng-init

另外,在同一个链接中,您是否可以使用控制器设置初始值?

答案 1 :(得分:-2)

我使用ng-init

在ng-repeat中实现了这个函数调用
<td class="lectureClass" ng-repeat="s in sessions" ng-init='presenters=getPresenters(s.id)'>
      {{s.name}}
      <div class="presenterClass" ng-repeat="p in presenters">
          {{p.name}}
      </div>
</td> 

控制器端的代码应如下所示

$scope.getPresenters = function(id) {
    return SessionPresenters.get({id: id});
};

虽然API工厂如下:

angular.module('tryme3App').factory('SessionPresenters', function ($resource, DateUtils) {

        return $resource('api/session.Presenters/:id', {}, {
            'query': { method: 'GET', isArray: true},
            'get': {
                method: 'GET', isArray: true
            },
            'update': { method:'PUT' }
        });
    });