0

私はAngularJSが初めてで、遊んでいるときに問題に遭遇しました....私は次のようなテーブルを持っています:

...
<tr ng-repeat="line in lines">
<remove-line>
            <input id="line_id" type="hidden" value="{{line.id}}">
            <td id="sn">{{$index+1}}</td>
            <td>{{line.ref}}</td>
            <td>{{line.label}}</td>
            <td class="tva">{{line.tva}}</td>
            <td class="qty">{{line.qty}}</td>
            <td class="unity">{{line.unity}}</td>
            <td class="prix">{{line.prix}}</td>
            <td>{{line.prix*line.qty}}</td>

            <td><button class="btn" id= "remove"><i class="icon-remove"></i> </button></td>
         </remove-line>
        </tr>
...

カスタムディレクティブを使用して、削除ボタンをクリックしたときにいくつかの動作が必要です。AngularJS コードは次のようになります。

angular.module('myApp', []).directive('removeLine',function(){
    var remove = function(){
    ...
        alert ("Oops removed!");
    }

    return {
           restrict: 'E',
           link : function(scope,element, attrs){
               $("#remove").on('click', remove);

           }


    };
});

しかし、これは機能しません....テーブルの削除ボタンをクリックしても何も起こりません.....しかし、ボタンがタグの外にある場合、これはすべて正常に機能します。なぜそうであり、どのように機能させるのですか?

私の状況を説明するために jsfiddle を作成しましたhttp://jsfiddle.net/alexrussinov/cs8RP/71/。奇妙なことに、このコードをローカル マシンでテストすると、テーブル内のボタンが機能しませんが、その下にある 2 つのボタンは正常に機能します。jsfiddle では、表にもその下にもありませんが、機能しません。

4

1 に答える 1

2

同じ ID のページに複数の要素を含めることはできません。これは、ボタンで行っていることです。

remove()最も簡単な解決策は、呼び出しをボタンタグに直接貼り付けng-click、削除したい行を渡すことだと思います。もちろん、これはremove()メソッドが の一部であることを前提としています$scope

<button class="btn" ng-click="remove(line)"><i class="icon-remove"></i></button>
于 2013-04-04T22:46:06.760 に答える