当字段包含用户输入时,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>
我对 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>