2

削除操作を確認するためにポップオーバーを作成しようとしています。クリックオーバーブートストラッププラグイン(サードパーティ)を使用してポップオーバーを作成し、ディレクティブを作成しました。

問題は、ポップオーバーボタンのコンパイル済みHTMLから親/兄弟スコープにアクセスできないことです。

実用的には、このコードが実行していないのは、ポップオーバーの削除ボタンから反復変数(v)を使用してスコープ内のdestroy関数を呼び出すことです。

JSFiddle:

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}

したがって、destroy関数からid.valueを実行してIDを取得します。または、繰り返し式を次のように更新することをお勧めします。

v.id in list.id

またはIDから名前を変更すると、混乱します。

于 2012-10-05T02:46:34.997 に答える