AngularJS - 编译通过ng-repeat添加的元素

时间:2013-04-07 13:56:10

标签: angularjs

这是我的问题:我使用ng-repeat动态创建按钮,并且他们的ng-click不起作用。从我到目前为止发现,我必须编译这些按钮,以确保角度知道新的指令,但我不知道如何做到这一点。我尝试创建一个新的指令,但我必须做错事,因为它仍然无效。

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);
    };
}

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

ng-repeat上的语法略有偏差。尝试更改为此并查看它是否有效:

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

你放在ng-click中的表达式永远不应该有这样的插值括号。你放在那里的任何东西都已根据当前范围的上下文进行评估。

您尚未编写任何新指令(至少在此示例中显示),因此您无需担心任何新指令。