마스터 카톤 배열에 마스터 카톤을 추가하는 대화 상자가 있습니다.
리피터 1 개 이상의 마스터 판지를 보여줍니다 그것은 가치가 무엇
이 <div ng-repeat="carton in dimensionsModalVm.masterCartons">
<div class="form-group">
<label class="control-label col-md-3">Length</label>
<div class="col-md-9">
<input name="length" min="0" max="999" class="form-control input-inline input-xs" type="number" placeholder="Enter Length" ng-model="carton.dimensions.length" required /> inches
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">Weight</label>
<div class="col-md-9">
<input name="weight" min="0" max="999" class="form-control input-inline input-xs" type="number" placeholder="Enter Weight" ng-model="carton.dimensions.weight" required /> pounds
</div>
</div>
</div>
</div>
</div>
<button class="btn btn-default" ng-click=" dimensionsModalVm.addMasterCarton()" type="button">Add another master carton</button>
페이지 초기화에 첫 MC의 내 생성이라고
function dimensionsModalInstanceController($http, $uibModal, $uibModalInstance, toastr, cart, masterCarton, CartObservable) {
vm.addMasterCarton = function() {
vm.masterCartons.push({
length: 0,
weight: 0
});
};
vm.addMasterCarton();
(( , dimensionsModalInstanceController가 내 생성을 위해 앞의 모달 컨트롤러가 여기 있습니다. 따라서 dimensionsModalInstanceController는 dimensionsModalVm입니다.
function masterCartonModalInstanceController($uibModal, $uibModalInstance, cart) {
vm.yes = function(size) {
var modalInstance = $uibModal.open({
templateUrl: 'dimensionsModalContent',
controller: 'dimensionsModalInstanceController',
controllerAs: 'dimensionsModalVm',
...
)
다른 MC를 추가하려면 단추가 vm.addMasterCarton을 호출하기 만하면됩니다.
...
이제 MC를 삭제할 수 있기를 바랍니다. 각 MC의 구석에 [X]를 추가했습니다.
<div ng-repeat="carton in dimensionsModalVm.masterCartons">
<button class="btn btn-default pull-right" type="button" ng-click="dimensionsModalVm.deleteMasterCarton(this)">X</button>
vm.deleteMasterCarton = function (obj) {
console.log(obj.carton);
console.log(vm.masterCartons);
};
내 출력은 다음과 같습니다
Object {length: 1, weight: 1, $$hashKey: "object:51"}
및
Object array
[
{
$$hashKey: "object:33",
length: 1,
weight: 1
},{
$$hashKey: "object:51",
length: 1,
weight: 1
}
]
가 어떻게 배열에서 개체를 삭제하려면 그것을 알 수 있습니까? 일치하는 $$ hashKeys가 보이지만 어떻게 처리해야할지 모르겠습니다.
나는 그들을 추적하기 위해 고유 한 ID를 발명하고 싶지 않습니다.
트랙을 색인을 사용하여 내 MC 중계기에 사용하면 삭제할 때 위치가 어둡습니까?
이 문서 : How do I delete an item or object from an array using ng-click?
이 해야 작업을 제안은 :
var index = vm.masterCartons.indexOf(obj);
vm.masterCartons.splice(index, 1);
불행하게도, 그것은 바로 하나를 삭제하지 않습니다.
아 "의 인덱스"를 다시 시도하십시오! 카톤은 원하는 것입니다! 고맙습니다. – DaveC426913
컨트롤러가 필요없는 또 다른 단순한 솔루션을 발견했습니다. 바로 DOM에서 할 수 있습니다 : – DaveC426913