Angular 使用 ng-repeat 和 ng-model 调用 splice() 时重定向到主页
Angular redirecting to homepage when calling splice() with ng-repeat and ng-model
这是一个非常奇怪的问题,我不太清楚如何描述或排除故障。我在指令中有一个函数 addattack
:
scope.addattack = function () {
var attack = {
}
scope.attacks.push(attack)
}
attacks
是我主控制器范围内的一个数组。我还有一个函数 deleteattack
:
scope.deleteattack = function (i) {
console.log(scope.attacks)
scope.attacks.splice(scope.attacks.indexOf(i), 1)
console.log(scope.attacks)
}
我正在从我的指令中调用 html:
<div class="character-input input-group input-group-sm col-lg-10 col-md-10 col-sm-10" ng-repeat="attack in attacks">
<span class="input-group-addon" id="attack-{{attack.name}}">Attack</span>
<button type="button" class="btn btn-default" ng-click="deleteattack(attack)">Delete Attack</button>
</div>
我知道 indexOf
和 splice
由于控制台日志而工作正常。但是,在我调用 deleteattack
一秒钟后,我被踢出当前页面并被重定向回主页。几乎就像我的整个会话都被破坏了一样。我知道这与 splice()
有关。我只是不知道还发生了什么。我觉得这与我在这里有一个 ng-repeat 并且其他 ng-model 附加到我页面其他地方的这个对象有关,并且当我删除这个对象时我是 "destroying" 之间的连接这两个 angular 吓坏了并重定向了我。这是问题吗?有办法解决吗?
我以前遇到过这个问题 - 不确定为什么会这样,设法解决了这个问题:
scope.deleteattack = function (i) {
var attacks = angular.copy(scope.attacks);
var indexToRemove = scope.attacks.indexOf(i);
attacks.splice(indexToRemove, 1)
scope.attacks = attacks;
}
这是一个非常奇怪的问题,我不太清楚如何描述或排除故障。我在指令中有一个函数 addattack
:
scope.addattack = function () {
var attack = {
}
scope.attacks.push(attack)
}
attacks
是我主控制器范围内的一个数组。我还有一个函数 deleteattack
:
scope.deleteattack = function (i) {
console.log(scope.attacks)
scope.attacks.splice(scope.attacks.indexOf(i), 1)
console.log(scope.attacks)
}
我正在从我的指令中调用 html:
<div class="character-input input-group input-group-sm col-lg-10 col-md-10 col-sm-10" ng-repeat="attack in attacks">
<span class="input-group-addon" id="attack-{{attack.name}}">Attack</span>
<button type="button" class="btn btn-default" ng-click="deleteattack(attack)">Delete Attack</button>
</div>
我知道 indexOf
和 splice
由于控制台日志而工作正常。但是,在我调用 deleteattack
一秒钟后,我被踢出当前页面并被重定向回主页。几乎就像我的整个会话都被破坏了一样。我知道这与 splice()
有关。我只是不知道还发生了什么。我觉得这与我在这里有一个 ng-repeat 并且其他 ng-model 附加到我页面其他地方的这个对象有关,并且当我删除这个对象时我是 "destroying" 之间的连接这两个 angular 吓坏了并重定向了我。这是问题吗?有办法解决吗?
我以前遇到过这个问题 - 不确定为什么会这样,设法解决了这个问题:
scope.deleteattack = function (i) {
var attacks = angular.copy(scope.attacks);
var indexToRemove = scope.attacks.indexOf(i);
attacks.splice(indexToRemove, 1)
scope.attacks = attacks;
}