绑定Angularjs问题中的2个输入

时间:2015-07-26 16:39:35

标签: javascript angularjs

我有2个输入。

<input type="number" ng-model="samount" ng-change="getSR(samount)">
<input type="number" ng-model="ramount" ng-change="getRS(ramount)">
控制器中的

$scope.getSR = function(amount) {
      $scope.ramount = parseFloat((amount*5.25).toFixed(3)); 
};

$scope.getRS = function(amount) {
      $scope.samount = parseFloat((amount/5.25).toFixed(3)); 
};

我在输入1中输入一些数据并进行一些计算并用控制器中的功能更新输入2的值。这是有效的,但是当我在输入2中输入数据时,反向计算并更新输入1.由于某种原因,输入1的值不会更新。我使用了$ scope。$ watch来查看输入1是否更新并且它是在$ watch中更新,但不在视图中。 如果我重新加载并从输入2开始它可以工作,输入1更新,但输入1输入不会再次更新。它们的范围相同,但ng-change是不同的功能。

$ scope。每个函数中的$ apply()都会给出正在进行的错误应用。

有没有办法解决这个问题?

编辑:添加了示例代码

1 个答案:

答案 0 :(得分:1)

首先,您的代码有效https://jsfiddle.net/5m18jfy9/ 无论如何,我认为你错过了dot的规则。在范围内将数据绑定到模型时,请使用object作为命名空间。例如:

ng-repeat='carname' //this could brake 2-way data binding in some point
ng-repeat-'car.name' //this will always update properly your model and template