角度文本区域数据为 NaN

angular textarea data is NaN

本文关键字:NaN 数据 区域 文本      更新时间:2023-09-26

为什么文本区域数据在使用ng-bind而使用ng-bind时不起作用?

<div class="col-sm-5 col-md-5">
  <div id="out">
    {{objInput}}
  </div>
  <div id="out2" ng-bind="out2"></div>
</div>

这是 plnkrhttp://plnkr.co/edit/srYQnpHudt7gfeOXN1ff?p=preview

仅在实例化控制器时分配txt变量。你可以做:

$scope.generate = function (){
    $scope.out2 = JSON.stringify($scope.objInput);  
};

或者,您可以在函数内断言txt

$scope.generate = function (){
  var txt  = $scope.objInput;
  $scope.out2 = JSON.stringify(txt);
  console.log(txt); 
};

或者,将txt作为函数参数发送:

<button id="gJson" class="form-control btn btn-primary" ng-click="generate(objInput)"> Write</button>

$scope.generate = function (txt){
  $scope.out2 = JSON.stringify(txt);
  console.log(txt);
};
<div id="out2" ng-bind="objInput"></div>

因此,您需要使用,属性名称objInput ng-bind中。

我相信问题是你只在创建控制器时分配 txt 变量。如果将变量移动到生成函数中,它将起作用。

$scope.generate = function() {
  var txt = $scope.objInput;
  $scope.out2 += JSON.stringify(txt);
  console.log(txt);
};

仅在控制器初始化中将值分配给 txt。当 objInput 的值发生变化时,您还必须更改 txt 值。在这种情况下,您可以使用监视功能,然后更改 txt 值。

法典:

(function(){
var app = angular.module('cApp', []);
app.controller('cCtrl', function($scope) {
    $scope.objInput = '';
    var txt  = $scope.objInput;
    $scope.$watch('objInput', function(oldValue,newValue) {
      txt = newValue;
    })
        $scope.generate = function (){
    $scope.out2 = JSON.stringify(txt);
        console.log(txt);
        };
});// Fin qCtrl
//-----------------------------------------------------------------------------
})();

更新的普伦克尔

更多关于手表的信息

HTML:

<div class="col-sm-5 col-md-5">
    <textarea class="form-control" rows="3" ng-model="objInput"></textarea>
    <button id="gJson" class="form-control btn btn-primary" ng-click="generate(objInput)"> Write</button>
  </div>    
<div class="col-sm-5 col-md-5">
    <div id="out">
      {{objInput}}
    </div>
    <div ng-bind="out2"></div>
  </div>

.JS:

    (function() {
  var app = angular.module('cApp', []);
  app.controller('cCtrl', function($scope) {
    var txt = $scope.objInput;
    $scope.generate = function(txt) {
      $scope.out2 = txt;
    };
  }); 
})();

试试这个