Ich habe ein Problem mit Eingabefeldern in AngularJS. Was auch immer ich in einem schreibe, bekomme ich genau denselben Text in einem anderen (field_start
= field_end
). Was mache ich falsch? Stimmt etwas nicht mit ng-model
?Eingabefelder, die dasselbe anzeigen
template.html
<form name="editForm" role="form" novalidate ng-submit="vm.save()">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"
ng-click="vm.clear()">×</button>
<h4 class="modal-title" id="myPackLabel">Create offer</h4>
</div>
<div class="modal-body">
<jhi-alert-error></jhi-alert-error>
<div class="form-group">
<label class="control-label" for="field_start">Miejsce startowe</label>
<input type="text" class="form-control" name="field_start" id="field_start"
ng-model="vm.transitPointStart.city" placeholder="np. Warszawa"
/>
</div>
<div class="form-group">
<label class="control-label" for="field_end">Miejsce docelowe</label>
<input type="text" class="form-control" name="field_end" id="field_end"
ng-model="vm.transitPointEnd.city" placeholder="np. Wrocław"
/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal" ng-click="vm.clear()">
<span class="glyphicon glyphicon-ban-circle"></span> <span>Cancel</span>
</button>
<button type="submit" ng-disabled="editForm.$invalid || isSaving" class="btn btn-primary">
<span class="glyphicon glyphicon-save"></span> <span>Save</span>
</button>
</div>
</form>
controller.js
(function() {
'use strict';
angular
.module('myApp')
.controller('AddOfferDialogController', AddOfferDialogController);
AddOfferDialogController.$inject = ['$scope', '$stateParams', '$uibModalInstance', 'entity', 'ShipmentOffer', 'TransitPoint', 'PackageSlot'];
function AddOfferDialogController ($scope, $stateParams, $uibModalInstance, entity, ShipmentOffer, TransitPoint) {
var vm = this;
vm.shipmentOffer = entity;
vm.transitPointStart = entity;
vm.transitPointEnd = entity;
vm.save = function() {
vm.shipmentOffer.date = new Date();
TransitPoint.save(vm.transitPointStart);
TransitPoint.save(vm.transitPointEnd);
ShipmentOffer.save(vm.shipmentOffer);
$uibModalInstance.close();
vm.isSaving = false;
}
vm.clear = function() {
$uibModalInstance.dismiss('cancel');
};
}
})();
Es ist keine Überraschung. Sie füllen in beiden Fällen die Eigenschaft entity.city. Sie sollten zwischen diesen Eigenschaften unterscheiden. Sie benötigen zwei Eigenschaften, um die Start- und Ankunftsstadt zu verwalten. – SayusiAndo
Danke, ich bekomme es jetzt, aber ist es möglich, damit umzugehen, wenn ich zwei verschiedene entity.city in demselben Dialog brauche? Ich kann meine Datenbank momentan nicht ändern. – ulou
Ich kenne Ihr Datenbankschema nicht, aber Sie haben die Freiheit, das Datenmodell, das Sie auf Client-Ebene haben, beliebig zu ändern. Danach müssen Sie darauf achten, dass es für Ihr Datenbankschema passt. – SayusiAndo