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

ng-model doesn't change value when field contains user input

我对 angular.js 还是很陌生。这看起来应该很简单,但是我被难住了。

我有一个输入框:

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

我有一个按钮可以在 ng-click 时在我的控制器中调用此函数:

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

点击按钮的行为符合预期 - 页面上的输入值变为 "qqqqq"。所以数据绑定似乎是正确的。

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

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

有效:

脚本:

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