如何将一个“模型”映射到两个字段?

时间:2013-01-31 03:54:36

标签: angularjs

我有一个具有“高度”属性的模型,我希望允许用户编辑为两个单独的字段,“英尺”和“英寸”,但让它们映射到单个属性“高度”,以英寸为单位。

表单看起来像这样:

在这些字段和单个“高度”属性之间创建双向绑定的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

HTML:

<input type="number" ng-model="feet">
<input type="number" ng-model="inches">
<br>{{height}}

控制器:

$scope.feet = 2;
$scope.inches = 5;
$scope.$watch('feet * 12 + inches', function(value){
  $scope.height = value;
})

Plnkr

答案 1 :(得分:3)

我修改了@ Mark的例子,删除了$ watch,我觉得它是多余的

HTML

<input type="number" ng-model="calc.feet">
<input type="number" ng-model="calc.inches">
<br>{{calc.height()}}

控制器

$scope.calc = {
  feet: 2,
  inches: 5,
  height: function () { return this.feet * 12 + this.inches }
};

Plunkr