2014-10-30 4 views
1

Я пытаюсь удалить элемент внутри ngRepeat. Он хорошо удаляется, но после удаления элемента страница перезагружается. Как я могу предотвратить это действие перезагрузки?AngularJS перезагрузка страницы после удаления элемента

Heres код:

<li ng-repeat="task in tasks"> 
    <p>{{task.title}}</p> 
    <button ng-click="remove($index)">Click me</button> 
</li> 

сфера расслоение плотной:

$scope.remove = function($index){ 
    $scope.tasks.splice($index, 1); 
} 
+0

Зачем нужна кнопка для перезагрузки страницы? Уверены ли вы, что у вас есть кнопка, а не ссылка с каким-то href, а не форма, которая будет отправлена? – dfsq

+1

Кажется, что это единственная кнопка внутри формы, и она принимает submit. Подтвердите это, запретив действие по умолчанию из события или перемещая кнопку вне вашего тега закрывающей формы. – Antiga

+0

@dfsq да, это 'кнопка'. @Antiga Я просто изменил его на «якорь», и он сработал! Благодарю. Кстати, это не 'form' –

ответ

4

В соответствии с W3C спецификации, тип не определен, и это при условии, отправке. Добавление type='button' должно решить проблему.

<li ng-repeat="task in tasks"> 
    <p>{{task.title}}</p> 
    <button type="button" ng-click="remove($index)">Click me</button> 
</li> 

Релевантно specification если вам интересно.

1

<button> действовал как submit (спасибо @Antiga), я попытался изменить его на input[type=button], но все еще не работал.

Я только что сделал это изменение:

<button ng-click="remove($index)">Click me</button> 

к:

<a ng-click="remove($index)">Click me</a> 

И она работала хорошо.

Смежные вопросы