Angular-控制器在使用ng单击后刷新
Angular - Controller refresh after using ng-click
我有一个控制器,它基本上是一个对象,在这个对象内部我有函数。
一开始,我设置了变量的默认值,并使用init()
函数从数据库中获取数据。
除了一件事外,整个页面都能正常工作。不知怎的,当我使用ng点击从所选中删除时,我遇到了麻烦
<a href="#" ng-click="listCtrl.removeFromChosen(chosen)" class="tagselect__close">
<span class="glyphicon glyphicon-remove remove-icon" aria-hidden="true"></span>
</a>
我的整个控制器再次初始化,所以它将所有值设置为默认值,并再次调用init()
函数。我不明白为什么会发生这种事。
"use strict";
myApp.controller('ListCtrl', ['$scope', '$cookies', '$http', function ($scope, $cookies, $http) {
var listCtrl = {
candidate: {},
candidates: [],
positions: [],
chosenPositions: [],
init: function () {
listCtrl.getCandidates();
listCtrl.getPositions();
},
getCandidates: function () {
$http.get('api/v1/candidates/getCandidates.php').then(function (res) {
listCtrl.candidates = res.data;
});
},
getPositions: function () {
$http.get('api/v1/positions/getPositions.php').then(function (res) {
listCtrl.positions = res.data;
});
},
removeFromChosen: function (position) {
var index = listCtrl.getChosenIndex(position);
listCtrl.chosenPositions.splice(index, 1);
//console.log(listCtrl.chosenPositions);
},
};
listCtrl.init();
$scope.listCtrl = listCtrl;
}]);
知道我做错了什么吗?
使用锚点标记执行单击功能时,即使它没有链接到任何内容,默认情况下也会刷新页面。为了防止这种情况,请将事件对象传递给您正在调用的函数,并使用类似的防止默认值:
removeFromChosen: function (event, position) {
event.preventDefault();
var index = listCtrl.getChosenIndex(position);
listCtrl.chosenPositions.splice(index, 1);
//console.log(listCtrl.chosenPositions);
}
删除与ng-click不兼容的href="#"
。
相关文章:
- 单击表单中的按钮会导致页面刷新
- 使用replaceWith同时单击按钮,而不刷新浏览器
- 单击时角度刷新模型
- 在ASP.NET中单击“提交”按钮时,使表单不刷新
- 如何使页面在单击时向下滑动而不刷新
- 如何在不刷新页面的情况下每次单击一组选项卡时刷新视图内容窗格
- 单选按钮单击可刷新/更改网站的小区域
- 触发单选按钮单击,并在页面刷新时记住选择
- 如何使用javascript刷新我的html页面时清除按钮单击
- 单击即显示内容而不重新加载/刷新页面
- 当用户单击关闭浏览器时(但不是当用户单击刷新按钮时),JavaScript会确认启动
- 如何通过单击按钮刷新已打开的页面
- JS/AJAX:提交时不刷新或按钮单击不触发输入
- 单击按钮后刷新和重定向页面
- 如何在单击刷新按钮后再次从启动禁用计时器
- 模拟重复单击刷新页面的按钮
- 每次用户单击刷新时,计数器数减去1,当它达到1时,重置为7-javascript
- 单击刷新iframe
- 当用户单击刷新页面时,在url中添加参数
- 是否可以通过单击刷新/重新加载脚本标签