Javascript 用于确认弹出的AngularJS指令无法访问父作用域

Javascript 用于确认弹出的AngularJS指令无法访问父作用域,javascript,angularjs,Javascript,Angularjs,我正在尝试创建一个弹出框以确认删除操作。我使用clickover引导插件(第三方)创建了popover,并创建了一个指令 问题是我无法从已编译的html中访问popover按钮的父/同级作用域 实际上,这段代码没有做的是使用popover中的delete按钮中的迭代变量(v)调用作用域中的destroy函数 JSFiddle: 以下是指令的代码: function TestCtrl($scope) { $scope.list = { id: [{

我正在尝试创建一个弹出框以确认删除操作。我使用clickover引导插件(第三方)创建了popover,并创建了一个指令

问题是我无法从已编译的html中访问popover按钮的父/同级作用域

实际上,这段代码没有做的是使用popover中的delete按钮中的迭代变量(v)调用作用域中的destroy函数

JSFiddle:

以下是指令的代码:

function TestCtrl($scope) {
    $scope.list = {
         id: [{
             value: 1},
         {
             value: 2},
         {
             value: 3}]
     };
     $scope.destroy = function(id) {
         console.log("destroy called (" + id + ")");
     }
 }

 angular.module('TestApp', []).directive('buttonDelete', function($compile, $rootScope)      {
     return {
         restrict: 'E',
         replace: true,
         template: '<a class="button-delete"><i style="margin-top: 4px;" class="icon-     remove"></i></a>',
    link: function(scope, element, attrs) {
        //            debugger;
        //element.bind('click', function(e) {
        //                var popover = $();
        //                element.clickover({content: 'test'});
        element.clickover({
            global: true,
            title: 'Are you sure?',
            content: function() {
                //debugger;
                var element = $compile("<div class='btn-toolbar'><button id='button-confirm-delete-cancel' data-dismiss='clickover' class='btn'>Cancel</button><button id='button-confirm-delete-ok' class='btn btn-danger' ng-click='destroy(v)'>Delete</button></div>")(scope.$parent);
                return element.html();
            }
            //});
        });
    }
}
});​
函数TestCtrl($scope){
$scope.list={
身份证:[{
值:1},
{
值:2},
{
值:3}]
};
$scope.destroy=函数(id){
log(“销毁调用(“+id+”));
}
}
angular.module('TestApp',[])指令('buttonDelete',函数($compile,$rootScope){
返回{
限制:'E',
替换:正确,
模板:“”,
链接:函数(范围、元素、属性){
//调试器;
//元素绑定('click',函数(e){
//var popover=$();
//元素。单击({content:'test'});
元素。点击({
全球:没错,
标题:“你确定吗?”,
内容:函数(){
//调试器;
var元素=$compile(“CancelDelete”)(范围$parent);
return-element.html();
}
//});
});
}
}
});​

它看起来对我有用
v
是一个对象而不是索引,例如:

{value: 2}
因此,从destroy函数中,只需执行id.value即可获得id。或者,我建议将重复表达式更新为:

v.id in list.id

或者从ID重命名,这很混乱。

看起来它对我有用
v
是一个对象而不是索引,例如:

{value: 2}
因此,从destroy函数中,只需执行id.value即可获得id。或者,我建议将重复表达式更新为:

v.id in list.id
或者从ID重命名,这很混乱