ng-click不在ng-include中工作

时间:2013-08-15 19:26:56

标签: angularjs

我有一个通过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不起作用。有任何想法吗?

2 个答案:

答案 0 :(得分:5)

确保将您的功能放入控制器并将其分配给$ scope。

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

function TracklistController($scope){
    $scope.action = function(){ ... }
}

答案 1 :(得分:2)

ngClick不接受在Angular之外定义的任意JavaScript或函数! ngClick接受AngularJS expression。例如,data-ng-click="foo()"会在当前范围内调用foo