在指令模板上使用 ng-click 时在控制器中未定义

got undefined in controller while use ng-click on directive template

我没能在父控制器中获取事件。尝试了很多解决方案,但总是得到 undefined

此外,如果我在 link 函数中调用该函数并从那里调用控制器,则它无法正常工作(但在 link 函数中打印正确的对象)

感谢

页数:

<slider update-event="updateEvent(event)"></slider>

控制器:

$scope.updateEvent= function(event) {
    console.log(event);
}

指令模板:

<ul>
    <li  ng-click='updateEvent(event)' ng-repeat="event in events track by $index"><li>
</ul>

指令代码:

restrict: "AE",
templateUrl: "s.html",
replace: true,
scope:{
  updateEvent: '&',
},
link: function (scope,element, attrs, ctrl) {
}

将您的模板更改为:

<ul>
    <li ng-click='updateEvent({event: event})' ng-repeat="event in events track by $index"><li>
</ul>

这应该足够了(参见 here