我已经使用了角度模型很长一段时间来演示双向数据绑定。我想要完成的是只有在有变化时才将输入字段绑定到模型。
如果我有
<input value="Hello world">
我希望只有在对值进行更改时才将值传播到模型变量。
答案 0 :(得分:1)
答案取决于您要用于更新模型的事件。
假设您想要一个&#34;编辑表格&#34;但是不希望主模型更新现场,你可以制作模型的副本并扩展主模型&#34;保存&#34;
开始数据:
$scope.item ={age: 25, name: 'Foo Bar'};
$scope.editItem = angular.copy($scope.item);
HTML
<input ng-model="editItem.age">
<button ng-click="updateItem()">Update</button>
更新功能:
$scope.updateItem = function (){
$http.put(url, $scope.editItem).success(function(resp){
// merge data
angular.extend( $scope.item, $scope.editItem);
});
}
你也可以使用ng-change
答案 1 :(得分:0)
你可以使用额外的变量和$ watch来实现。例如:
<input type="search" ng-model="searchText">
在控制器中
$scope.$watch('searchText', function() {
$scope.filterText = $scope.searchText;
});
因此,如果输入中有任何更改,$ scope.filterText将更改为$ scope.searchText值