2

我有一个通过 ng-include 链接到组件的站点:

<div id="tracklist">
  <ng-include src="'partials/tracks.html'">
  </ng-include>
</div>

部分看起来像这样:

<div ng-controller="TracklistController">
  <div ng-repeat="track in tracks">
    <a ng-click="$('body').css('background-color', 'red')" href="#/tracks/{{ track.id  }}" class="track-link" data-audio-source="{{ track.source }}">{{ track.trackNumber + " - " + track.title  }}</a>
  </div>
</div>

它渲染得很好并且可以工作,但是我的 ng-click 事件由于某种原因没有触发。请注意,更改正文背景颜色只是一个明显的测试,看看它是否失败。我已经用我的实际功能进行了尝试(现在在文档加载时全局声明),并且我还使用 console.log 进行了测试。它都不起作用,所以很明显 ng-click 不起作用。有任何想法吗?

4

2 回答 2

5

确保将函数放在控制器中并将其分配给 $scope。

<a ng-click="action();">

function TracklistController($scope){
    $scope.action = function(){ ... }
}
于 2013-08-15T19:39:20.733 回答
2

ngClick不接受在 Angular 之外定义的任意 JavaScript 或函数!ngClick接受一个AngularJS 表达式。例如,data-ng-click="foo()"将调用foo当前作用域!

于 2013-08-15T19:38:41.607 回答