【问题标题】:Hidden input field in Angularjs not updateAngularjs中的隐藏输入字段未更新
【发布时间】:2013-09-02 18:37:39
【问题描述】:

我使用 angularjs v1.0.7。我有一个隐藏的表单字段,它的值与其他输入值相关。在http://jsfiddle.net/4ANaK/ 示例中,当我输入文本输入字段时,隐藏字段不会更新。

<div ng-controller="MyCtrl">
    <form ng-submit="action()">
      name:<input ng-model="name" type="text"  value="you name">
      <input ng-model="nice_name" type="hidden" value="Mr {{name}}" >
      <input type="submit">
    </form>
</div>

var app=angular.module('myApp', []);

function MyCtrl($scope) {
    $scope.name = "David";

    $scope.action = function(){
        alert($scope.nice_name);                
    }
}

如何解决问题?

【问题讨论】:

  • 我认为 Angular 不会像这样关注 value 属性。你想达到什么目的?是否提交了根据范围变量计算的隐藏表单字段?
  • 由于某种原因,我必须控制一个由服务器端生成的html中的隐藏文件,而不是在js控制器代码中。
  • 好吧,看看我更新的答案。

标签: javascript angularjs


【解决方案1】:

尝试 1

将此添加到您的控制器可以解决您的问题。它也解决了你真正的问题吗?

$scope.$watch('name', function (value) {
    $scope.nice_name = 'Mr ' + value;
});

http://jsfiddle.net/4kySW/


尝试 2

好吧,那这个呢?这纯粹是在视图中完成的。

http://jsfiddle.net/4kySW/1/

<input ... ng-change="nice_name = 'Mr ' + name" ng-init="nice_name = 'Mr ' + name">

编辑

看起来ng-init 不是必需的。

【讨论】:

  • 这并不能真正解决我的问题,出于某种原因,我想在服务器端生成的html中控制它,而不是在js控制器代码中。
  • 完美!非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 2019-05-12
  • 2012-04-03
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
相关资源
最近更新 更多