Ich habe folgendes Formular:

<form name="frmInput">

    <input type="hidden" ng-model="record.usersId" value="{{user.userId}}"/>
    <input type="hidden" ng-model="record.userNameId" value="{{user.userNameId}}"/>
    <label for="fileNo">AccountId</label>
    <input id="fileNo" ng-model="record.fileNo" required/>
    <label for="madeSad">MadeSad</label>
    <input id="madeSad" ng-model="record.madeSadNo" required/>

    <button ng-disabled="!frmInput.$valid" ng-click="SaveRecord(record)">Accept</button>

</form>

Ich bekomme record.fileNo und record.madeSadNo in der SaveRecord Funktion, aber ich bekomme nicht record.usersId und record.userNameId in der SaveRecord Funktion.

Wo mache ich Fehler?

Werte von versteckten Eingaben sind korrekt.

38
MRB 28 Nov. 2013 im 10:15

3 Antworten

Beste Antwort

Versteckte Formularfelder sind nicht der Winkel. Sie benötigen überhaupt keine versteckten Felder, da alle Bereichsvariablen (die nicht im Formular enthalten sind) als versteckte Variablen verwendet werden können.

Was die Lösung betrifft, füllen Sie beim Senden des Formulars einfach das Objekt 'Datensatz' mit 'Benutzer':

function SaveRecord(){
  $scope.record.usersId = $scope.user.userId;
  $scope.record.userNameId = $scope.user.userNameId;
  http.post(url, $scope.record);
}

Als Randnotiz müssen Sie Ihre Variable beim Aufrufen der Funktion nicht erwähnen:

<button ng-disabled="!frmInput.$valid" ng-click="saveRecord()">Accept</button>
40
Matt Sach 17 Feb. 2016 im 14:54

Das ausgeblendete Feld unterstützt keine Doppelbindung.

Verwenden Sie einfach dies:

<input type="hidden" name="userId" value="{{user.userId}}"/> {{user.userId}}
<input type="hidden" name="UserNameId" value="{{user.userNameId}}"/> {{user.userNameId}}
2
Bappi Datta 28 Nov. 2013 im 06:32

Sie können so etwas verwenden:

<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>
22
Sergey Kuznetsov 20 Okt. 2014 im 09:58