这是我的问题:我必须向DOM object
添加一个事件监听器,将其绑定到AngularJS function
控制器内的函数。
以下是代码:
<body ng-app="myApp">
<div ng-controller="myController">
<table>
<ul id="main_ul">
</ul>
</table>
</div>
</body>
var day = document.createElement('li');
day.innerHTML = 'Click Here';
day.myDate = new Date();
document.getElementById('main_ul').appendChild(day);
day.addEventListener("click", onClickAgenda, false);
var module = angular.module('myApp', []);
module.controller('myController', function($scope) {
function onClickAgenda() {
$scope.selectedDate = this.myDate;
}
});
我收到函数onClickAgenda()
未定义的错误。
我知道这可以通过将函数声明为:
来解决function onClickAgenda() {
console.log(this.myDate);
}
在我的JS文件中。但我需要它在控制器内部。这可能吗?
答案 0 :(得分:0)
您可以对选择框使用ng-options,并使用范围数组填充该选项。
然后你应该使用ng-click on element而不是addEventListener https://docs.angularjs.org/api/ng/directive/ngClick
ng-options仅适用于选择框(我给出了错误答案)
对于您的情况,您可以在范围数组上使用ng-repeat
,并从控制器动态地将项目推送到数组。
<ul id="main_ul" ng-repeat="listItem in collection">
<li ng-click="handlerFunction()">{{listItem}}</li>
</div>