我有运输和计费字段。如果客户选中“使用运费进行计费”框,我希望计费字段与运输字段匹配。我可以复制这些值,但我宁愿重新绑定帐单字段以匹配运输字段,因此如果选中该框并且对运输进行更改,帐单也会更新。那么我将如何重新绑定 ng-model 的来源,或者我可以使用什么成语来绑定帐单地址字段来实现这一点?
问问题
1994 次
2 回答
4
维护两个对象
$scope.shipping = { .... };
$scope.billing = { .... };
如果有人选择他们想要匹配的,就做
$scope.billing = $scope.shipping.
由于对象是通过引用进行的,因此当它们更新一个时,另一个也将更新。您可以通过将 $scope.billing 更改回您初始化它的任何内容来删除引用:
$scope.billing = { .... };
如果您也有一个要绑定的复选框,请在其上连接一个 data-ng-change
<input type="checkbox" data-ng-model="MY_MODEL" data-ng-change="myFunction() "/>
然后在你的控制器中有
$scope.MY_MODEL = false;
$scope.myFunction(){
console.log($scope.MY_MODEL);
}
或者不要绑定 data-ng-change 而只是 $watch MY_MODEL:
$scope.MY_MODEL = false;
$scope.$watch("MY_MODEL", function(){
console.log($scope.MY_MODEL);
}, true);
于 2013-09-05T16:20:46.577 回答
3
您可以使用ng-checked
而不是使用范围手表来使其重量轻。不要重新发明轮子。
<input type="checkbox" ng-model="flip" ng-checked="checked();">
$scope.checked = function(){
if($scope.flip){
$scope.data = ... //update the data source
}else{
$scope.data = ... //update the data source
}
}
于 2013-09-05T17:24:04.940 回答