Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单输入ng值似乎已填充,但为空_Javascript_Angularjs_Forms_Angularjs Ng Value - Fatal编程技术网

Javascript 表单输入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

我正在构建一个AngularJS应用程序。我对填写ng值的表单有问题

输入字段已填充,用户可以看到文本,但当用户按下“更改”按钮时,它将变得未定义。有什么想法吗

我的控制器代码:

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