referencia org docs descargar component app javascript angularjs hidden-field

javascript - descargar - https docs angularjs org/>



Enlazar entradas ocultas para modelar en angular (3)

El campo oculto no es compatible con el doble enlace.

Solo usa esto:

<input type="hidden" name="userId" value="{{user.userId}}"/> {{user.userId}} <input type="hidden" name="UserNameId" value="{{user.userNameId}}"/> {{user.userNameId}}

Tengo la siguiente forma:

<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>

Obtengo record.fileNo y record.madeSadNo en la función SaveRecord pero no obtengo record.usersId y record.userNameId en la función SaveRecord .

¿Dónde estoy cometiendo un error?

Los valores de las entradas ocultas son correctos.


Puedes usar algo como esto:

<input type="hidden" ng-model="record.usersId" value="{{user.userId}}" ng-init="record.usersId=user.userId"/>


Tener campos de formulario ocultos no es la forma angular. No necesita campos ocultos, ya que todas las variables de ámbito (que no están en el formulario) se pueden tomar como variables ocultas.

En cuanto a la solución, al enviar el formulario, simplemente rellene el objeto ''registro'' con ''usuario'':

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

Como nota al margen, no necesita mencionar su variable al llamar a la función:

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