当字段包含用户输入时,ng-model不会更改值

时间:2015-01-08 03:33:48

标签: javascript angularjs angularjs-ng-model

我仍然是angular.js的新手。这看起来应该很简单,但我很难过。

我有一个输入字段:

<input type="text" placeholder="Search" ng-model="search.txt">

我有一个按钮,在我的控制器中通过ng-click调用此功能:

$scope.clearSearch = function() {
    $scope.search = {txt:"qqqqq"};
}

单击按钮的行为与预期一致 - 页面上的输入值变为“qqqqq”。所以数据绑定似乎是正确的。

但是,如果我首先在字段中键入任何内容然后按下按钮,则页面上的输入值不会更改 - 输入字段会保留我键入的值。那是为什么?

我真正想要做的是清除字段,我只是使用“qqqqq”进行说明 - 将值设置为null具有相同的行为。

1 个答案:

答案 0 :(得分:1)

有效:

脚本:

angular.module('myapp',[])
            .controller('myctrl',function($scope){
                $scope.search = {text:'some input'};
                $scope.clearSearch = function () {
                    $scope.search={text:null};
                }
});

标记:

<div ng-app="myapp" ng-controller="myctrl">
      <input type="text" ng-model="search.text"/>
      <button ng-click="clearSearch()">clear</button>
</div>

In plunker