所以目前平均值是在HTML代码中计算的。 如果更改了用户输入,则平均值会中断。我该怎么做才能为每个人提供平均更新,
控制器
<table>
<th>NAME</th>
<th>AGE</th>
<th>GENDER</th>
<th>ENGLISH/100</th>
<th>HINDI/100</th>
<th>AVERAGE/100</th>
<tr ng-repeat ="x in names | orderBy:sortColumn">
<td>{{x.name}}</td>
<td>{{x.age}}</td>
<td>{{x.gender}}</td>
<td><input type="text" ng-model="x.English"></td>
<td><input type="text" ng-model="x.Hindi"></td>
<td ng-bind="avg=(x.English+x.Hindi)/2">{{avg}}</td>
<td>
<button><a href="" ng-click="delete(x)" style="text-decoration:none;">Delete</a></button>
</td>
</tr>
</table>
HTML 这是我希望平均值发生变化的代码:
public static void ConvertMidiToText(string midiFilePath, string textFilePath)
{
var midiFile = MidiFile.Read(midiFilePath);
File.WriteAllLines(textFilePath,
midiFile.GetNotes()
.Select(n => $"{n.NoteNumber} {n.Time} {n.Length}"));
}
答案 0 :(得分:0)
x.English
和x.Hindi
作为字符串值输入,因此您需要解析它们。
<td ng-bind="avg=(parseFloat(x.English)+parseFloat(x.Hindi))/2">{{avg}}</td>
我们不能在Angular表达式中使用javascript,因此您必须设置对原始函数的引用。
$scope.parseFloat = parseFloat;
作为一种解决方法,您还可以使用乘法进行解析。
<td ng-bind="avg=(x.English*1+x.Hindi*1)/2">{{avg}}</td>
答案 1 :(得分:0)
您无法在角度表达式中使用parseInt()
函数,您需要创建一个计算avg
的方法。
从以下视图调用方法:
<td>{{avg(x.English, x.Hindi)}}</td>
和,在控制器中返回平均值的方法:
$scope.avg = function(e, h){
if(!h) h=0;
if(!e) e=0;
return ( parseInt(h)+parseInt(e))/2;
}
请参阅此plunker