我想将click事件附加到所有li(list)元素(我已经订购了list-ul)。我正在使用角度控制器。奇怪的是它不起作用。这是我设置此事件的代码的一部分(在角度控制器内部):
$document.ready(function () {
$scope.GetAllNotes();
$scope.AddSortable();
$scope.SetEvents(); //function call to function with click event for li
Loader.Hide();
$window.focus();
})
点击事件的功能:
$scope.SetEvents = function () {
jQuery("#ulNotes li").click(function () {
alert("You've clicked li!");
});
}
我想如果这不起作用我仍然可以使用IIFE,但我相信必须采用有角度的方式来做到这一点。
答案 0 :(得分:1)
你正在以jQuery的方式思考,但在角度思考方面做得与众不同。
要将简单的点击事件添加到列表元素,您只需添加ng-click
指令(如评论中所述),如下所示:
<ul>
<li ng-click="myFn()"></li>
<li ng-click="myFn()"></li>
<li ng-click="myFn()"></li>
</ul>
我的控制器你必须定义这样的东西:
app.controller('MyCtrl', function($scope) {
$scope.myFn = function() {
});
答案 1 :(得分:1)
像Tushar所说,不要像Angular一样使用jQuery。
HTML:
<div ng-controller="SampleController">
<ul ng-repeat="item in items"> <!-- assuming you're looping through a list' -->
<li ng-click="clickFunction($index)">Click me!</li>
</ul>
</div>
JS:
(function() {
'use strict';
angular
.module('MyModule')
.controller('SampleController', ControllerController);
ControllerController.$inject = ['$scope'];
function ControllerController($scope) {
$scope.items = []; // your list of items
$scope.clickFunction = function(index) {
alert("You've clicked list item: " + index);
}
}
})();