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