of-model在AngularJS中不使用ng-value

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了of-model在AngularJS中不使用ng-value相关的知识,希望对你有一定的参考价值。

以下是我的查看页面

<form name="form">
     <label>Name</label>
     <input name="name" type="text" ng-model='user.name' ng-value='emp.name' required />
     <span ng-show="form.name.$touched && form.name.$invalid">Name is required</span>
     <button ng-disabled="form.name.$touched && form.name.$invalid" ng-click='formUpdate()'>Update</button>
</form>

这是我的控制器

$scope.formUpdate = function() {
  $scope.status = false;
  $http({
  method : 'POST',
  url : 'model/update.php',
  data :   $scope.user ,
  headers : {'Content-Type': 'application/x-www-form-urlencoded'}          

  }).then(function mySuccess(response) {
    $scope.update = response.data;
    console.log(response.data); 
   }, function myError(response) {
    $scope.update = response.statusText;

   }); 
};

当我在我的HTTP调用中使用数据时:$scope.user我在控制台上得到空白值但是如果我使用数据:$scope.emp,那么我永远不会获得输入字段的更新值而是获取输入字段的旧值。

答案

ng-value将给定的表达式绑定到元素的值。

据我了解你的问题,你正在尝试将输入值初始化为emp.name

您应该将输入更改为:

<input type="text" ng-model='user.name' ng-init='user.name = emp.name' required />

ng-init docs

另一答案

试试这段代码;

$scope.formUpdate = function(){
  $scope.status = false;
  $scope.$applyAsync();

  $http({
  method : 'POST',
  url : 'model/update.php',
  data :   $scope.user ,
  headers : {'Content-Type': 'application/x-www-form-urlencoded'}          

  }).then(function mySuccess(response) {
    $scope.update = response.data;
    $scope.$applyAsync();
    console.log(response.data); 
   }, function myError(response) {
    $scope.update = response.statusText;  
    $scope.$applyAsync();
   }); 

  };

以上是关于of-model在AngularJS中不使用ng-value的主要内容,如果未能解决你的问题,请参考以下文章

堆叠三元运算符在 Angularjs 表达式中不起作用

ng-submit 在 Laravel PHP 框架中不起作用

ng-repeat 排序箭头在 javascript 数据表中不起作用

ng-show 在可操作的列中不起作用

ng-disable 在 SVG 元素中不起作用

拖放(jqyoui-droppable)在 AngularJS 中不起作用