【发布时间】:2016-05-31 08:52:35
【问题描述】:
我希望能够在右键单击该行时选择该行。
到目前为止,我有以下解决方案(我的想法来自here):
我创建了一个这样的右键单击指令:
app.directive('rightClick', function($parse) {
return function(scope, element, attrs) {
var fn = $parse(attrs.rightClick);
element.bind('contextmenu', function(event) {
scope.$apply(function() {
event.preventDefault();
fn(scope, {$event:event});
});
});
};
});
然后我可以在我的控制器中添加一个将被调用的函数:
$scope.rightClick = function (event) {
var scope = angular.element(event.toElement).scope();
if (scope.row.entity !== undefined) {
//... select element by calling gridApi
}
};
当然需要添加带有right-click="rightClick($event)"属性的指令。
此解决方案的问题在于它依赖于 element.scope(),这是 angular 的调试功能,如果在生产中禁用调试信息,则将无法使用。
所以现在我正在寻找一种无需element.scope() 的替代解决方案。所以问题是:“如何在不依赖角度调试功能的情况下右键单击选择元素”。
【问题讨论】:
标签: javascript angularjs angular-ui-grid