2015-08-20 78 views
0

这是我的代码:ng模型可以更新另一个ng模型吗?

<table ng-init="liveTotal={}"> 
    <tr ng-repeat="x in sovCtrl.topics" > 
    <td> {{x}}</td> 
    <td><input ng-model="sovCtrl.objects[x]" type="number"></td> 
    <td ng-hide="true"> 
     <input ng-model="liveTotal[$index]" type="number" value="{{sovCtrl.objects[x]}}"> 
    </td> 
    </tr> 
</table> 

<div > Current Result: 
    {{ 0 + liveTotal[0] + liveTotal[1] + liveTotal[2] + liveTotal[3] + liveTotal[4]}} 
</div> 

我试图做的是有输入的所有主题值的总和的实时结果(永远不会有超过5)不使用$范围或任何额外的sovCtrl方法/对象或添加脚本; 这些主题是我无法预测的字符串。

第二个输入更改当我键入第一个输入,但div的结果不是。 只有当我键入或按下第二个输入时(如果我使它可见),div的结果才会发生变化

这可以使用angular来完成,但只能修改上面的HTML吗?

编辑:sovCtrl.objects被传递到绘制值的函数中。修改这些键会破坏这些功能。

回答

0

明白了,这个工程。

<table ng-init="liveTotal={}"> 
    <tr ng-repeat="x in sovCtrl.topics" > 
    <td> {{x}}</td> 
    <td><input ng-model="sovCtrl.objects[x]" type="number"></td> 
    <td ng-show="false"> {{ liveTotal[$index]= sovCtrl.shareOfVoice[x]}}</td> 
    </tr> 
</table> 

<div > Current Result: 
{{ 0 + liveTotal[0] + liveTotal[1] + liveTotal[2] + liveTotal[3] + liveTotal[4]}} 
</div> 
1

你为什么不直接做类似如下所示 其中直接使用的第一个输入 您只需添加一个索引(这是在任何变量的NG-重复提供),现在你可以使用索引来访问值0,1,2,3,4

<table ng-init="liveTotal={}"> 
    <tr ng-repeat="(i,x) in sovCtrl.topics" > 
     <td> {{x}}</td> 
     <td><input ng-model="sovCtrl.objects[x]" ng-change="sovCtrl.objects_yo[i]=sovCtrl.objects[x]" type="number"></td> 
    </tr> 
</table> 

<div> Current Result: 
    {{ 0 + sovCtrl.objects_yo[0] + sovCtrl.objects_yo[1] + sovCtrl.objects_yo[2] + sovCtrl.objects_yo[3] + sovCtrl.objects_yo[4]}} 
</div> 
+0

大,但“的主题是字符串我无法预测” – lonewarrior556

+0

所以,你要的字符串转换为数字并把它们(如果他们确实是数字),只有在HTML? – techblu3

+0

sovCtrl.objects就像这样{name:0,:anothername:10,lastname:20} – lonewarrior556