0

这是我的问题:我使用 ng-repeat 动态创建按钮,但它们的 ng-click 不起作用。从我目前发现的情况来看,我必须编译这些按钮以确保 Angular 知道新指令,但我不知道该怎么做。我尝试创建一个新指令来这样做,但我一定做错了什么,因为它仍然无法正常工作。

HTML:

<div ng-controller="content">
    <ul>
        <li ng-repeat="item in items">
            <span>item.text {{$index}}</span>
            <button ng-click="deleteItem({{$index}})">Delete item</button>
        </li>
    </ul>

    <button ng-click="addItem()">Add item</button>
</div>

JS:

function content($scope) {
    $scope.items = [];

    $scope.addItem = function() {
        $scope.items.push({text: "test"});
    };

    $scope.deleteItem = function(index) {
        $scope.items.splice(index, 1);
    };
}

感谢您的回答。

4

1 回答 1

1

您的语法在ng-repeat. 尝试更改为这个,看看它是否有效:

<button ng-click="deleteItem($index)">Delete item</button>

你放在ng-clicknever 中的表达式应该有这样的插值大括号。您放入其中的任何内容都已经根据当前范围的上下文进行了评估。

您还没有编写任何新指令(至少在此示例中显示),因此您无需担心那里。

于 2013-04-07T14:36:21.907 回答