我命名为touts的对象将按创建顺序删除,而不是按id删除
调用删除它们的函数
deleteTouts()
这是一个实时代码:
HTML格式
<div ng-app="App">
<div ng-controller="Controller" class="container">
<button ng-click="addFields()">
Add Field
</button>
<hr />
<hr />
<div class="row" ng-repeat="(keyField, keyVal) in fields">
<input ng-hide="true" value="field" ng-model="field.id" />
<div>{{keyVal.id}} -- <span><a href="" ng-click="removeFields($index)">delete</a></span></div>
<div class="" ng-repeat="(keyTout, valTout) in fields[keyField].touts">
<div class="captions">
<input value="field" ng-model="valTout.caption" />
<input value="field" ng-model="valTout.subCaption" />
<br/>
</div>
<button ng-click="deleteTouts(keyTout)">delete tout</button>
</div>
<button ng-click="addTouts(keyField)">add tout</button>
<hr />
</div>
<hr />
<p class="well">fields: {{fields | json}}</p>
</div>
</div>
JS文件
angular.module('App', []);
function Controller($scope) {
$scope.friends = [];
$scope.fields = [
//'id': 0, touts: [{'caption': 'default caption', 'subCaption': 'default subcaption'}]
];
$scope.addFields = function() {
var idFields = $scope.fields.length == undefined ? 0 : $scope.fields.length ;
$scope.fields.push({id: idFields, touts: [{'caption': 'default caption', 'subCaption': 'default subcaption'}]});
};
$scope.removeFields = function(id) {
$scope.fields.splice( $scope.fields.indexOf(id), 1 );
};
$scope.addTouts = function (id) {
//alert(id);
$scope.fields[id].touts.push({'caption': 'default caption', 'subCaption': 'default subcaption'});
}
$scope.deleteTouts = function (id) {
//alert(id);
$scope.fields[id].touts.splice( $scope.fields[id].touts.indexOf(id), 1 );
}
}
方向:
Create 2 fields ->
create 2 touts in field[0] ->
create 1 tout in field[1]
现在为什么从中删除
field[1]tout[0]
使用
删除tout
它删除了第一次吹捧。
此功能不正确。最后,有没有更好的加减法?(指令)?