2

我正在尝试创建一个弹出框来确认删除操作。我使用 clickover bootstrap 插件(第 3 方)创建了弹出框并创建了一个指令。

问题是我无法从已编译的 html 中访问弹出框按钮的父/兄弟范围。

实际上,这段代码没有做的是从弹出框的删除按钮中调用具有迭代变量 (v) 的作用域中的销毁函数。

JSF中:

http://jsfiddle.net/maralc/PCB2D/

波纹管是指令的代码:

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();
            }
            //});
        });
    }
}
});​
4

1 回答 1

0

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

{value: 2}

因此,从您的销毁函数中只需执行 id.value 即可获取 id。或者我建议将您的重复表达式更新为:

v.id in list.id

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

于 2012-10-05T02:46:34.997 回答