Javascript 表单输入ng值似乎已填充,但为空
我正在构建一个AngularJS应用程序。我对填写ng值的表单有问题 输入字段已填充,用户可以看到文本,但当用户按下“更改”按钮时,它将变得未定义。有什么想法吗 我的控制器代码:Javascript 表单输入ng值似乎已填充,但为空,javascript,angularjs,forms,angularjs-ng-value,Javascript,Angularjs,Forms,Angularjs Ng Value,我正在构建一个AngularJS应用程序。我对填写ng值的表单有问题 输入字段已填充,用户可以看到文本,但当用户按下“更改”按钮时,它将变得未定义。有什么想法吗 我的控制器代码: // Fictional data it wineById will be a JSON object. $scope.wineById = {"id":"4","name":"fdfvs1","percentage":"vcxz1"} $scope.edit = function () { var wine
// Fictional data it wineById will be a JSON object.
$scope.wineById = {"id":"4","name":"fdfvs1","percentage":"vcxz1"}
$scope.edit = function () {
var wine = {
id:$scope.wineById.id,
name:$scope.name,
percentage:$scope.percentage
};
console.log($scope.name, $scope.percentage);
};
HTML:
ID葡萄酒:
葡萄酒名称:
葡萄酒百分比:
案例1:
已在我的字段中获取现有输入。按下按钮,但不更改字段中的输入数据。一切都变得不明确
案例2(有效的案例):
已在我的字段中获取现有输入。更改具有不同数据的所有字段并按下按钮。一切都变了
如何修复案例1?如果出于任何原因仍要使用
ng value
,请按以下方式更改html:
<form novalidate ng-submit="edit()">
<label>ID wine:
<input type="text" ng-init="id=wineById.id" ng-model="id" ng-value="wineById.id" ng-disabled="true">
</label>
<br>
<label>Name wine:
<input ng-init="name=wineById.name" type="text" ng-value="wineById.name" ng-model="name">
</label>
<br>
<label>Percentage wine:
<input ng-init="percentage=wineById.percentage" type="text" ng-value="wineById.percentage" ng-model="percentage">
</label>
<br>
<input type="submit" value="Change">
</form>
为什么使用ng值,angular支持双向绑定,ng模型足以绑定数据
<form novalidate ng-submit="edit()">
<label>ID wine: <input type="text" ng-model="id" ng-disabled="true"></label> <br>
<label>Name wine: <input type="text" ng-model="name"></label> <br>
<label>Percentage wine: <input type="text" ng-model="percentage"></label> <br>
<input type="submit" value="Change">
</form>
ID葡萄酒:
葡萄酒名称:
葡萄酒百分比:
为什么要使用ng值。ng模型足以绑定值。我使用ng值填充输入字段。我使用ng值填充输入字段。这仍然显示为未定义的console.log($scope.name,$scope.percentage)代码>如果它在您的代码中起作用,那么作用域
仅使用ng模型绑定值。如果我更改输入字段中的数据,它就起作用。当我将数据保留为填充时,它表示“未定义”,利用角度双向绑定。不需要ng值或ng init。此外,存在控制器问题,您是否使用多个控制器?我将使用ng值在输入字段中填充现有数据。我使用ng模型进行绑定。但是输入字段中填充的现有数据是存在的,但是如果我按“更改”,则输入字段是空的。您是否检查了实况演示?这是我想要的,但是您是如何填充输入字段的?在我这边它仍然是空的。从你在问题中提供的信息来看,IMO没有什么可以猜测的。我建议检查代码的任何其他部分是否正在改变你的值。
<form novalidate ng-submit="edit()">
<label>ID wine:
<input type="text" ng-model="wineById.id" ng-disabled="true">
</label>
<br>
<label>Name wine:
<input type="text" ng-model="wineById.name">
</label>
<br>
<label>Percentage wine:
<input type="text" ng-model="wineById.percentage">
</label>
<br>
<input type="submit" value="Change">
</form>
<form novalidate ng-submit="edit()">
<label>ID wine: <input type="text" ng-model="id" ng-disabled="true"></label> <br>
<label>Name wine: <input type="text" ng-model="name"></label> <br>
<label>Percentage wine: <input type="text" ng-model="percentage"></label> <br>
<input type="submit" value="Change">
</form>