ng-change函数不更新ng-model值

时间:2017-08-30 07:46:30

标签: javascript angularjs

我有这样的输入

<input type="text" name="name" class="form-control" ng-model="val" ng-change="valx()"/>

控制器:

$scope.val= "start";
$scope.valx = function() {
    $scope.val= "done!";
};

但是$scope.val未在文本框中更新。我在角v1.2.14上运行

2 个答案:

答案 0 :(得分:2)

提供的代码正在运作。该错误肯定来自您代码的另一部分。

可能性:

  • 检查您是否使用ng-app="AppName"
  • 正确设置了应用
  • 检查您是否使用ng-controller="ControllerName"
  • 正确设置了控制器
  • 检查您的控制器是否在您的页面上使用

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
  $scope.val = "start";
  $scope.valx = function() {
    $scope.val = "done!";
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<input type="text" name="name" class="form-control" ng-model="val" ng-change="valx()" />
</div>

答案 1 :(得分:0)

你不能这样做。你需要一个跨度来显示它。否则,该值将在同一文本字段上被高估。

<input type="text" name="name" class="form-control" ng-model="val" ng-change="valx()"/>
<span>{{result}}</span>

控制器: -

$scope.val="start";
$scope.result= "start";
$scope.valx = function() {
    $scope.result= "done!";
};