我有一个如下的角度设置,试图模仿一些 excel 功能,其中我有一个嵌套在 ng-repeat 中的控制器。
<tr ng-repeat="lw in lw_list" my-lw ng-model="lw"
<td>
<!-- next two elements act as an excel cell, one for inputing data, they other for displaying calcualtion result -->
<div ng-controller="MyCellCtrl">
<input type="text" class="inputdiv" ng-model="lw.library.name" >in</input>
<div class="output" ng-bind="getCellValue(lw.library.name)" syle="postion:absolute" contenteditable="True" >out</div>
</div>
<div ng-controller="MyCellCtrl">
more input / div pairs to act as a new cell
.....
</div>
</td>
我设置了样式表,以便输入和输出位于相同的位置,并隐藏/不隐藏,这样它们就像一个 excel 单元格(你输入一个公式,然后当你离开焦点时,它会更新内容)。
无论如何,当我在 getCellValue() 函数中放置一个 console.log() 以显示正在调用的控制器实例,然后输入一个特定的单元格时,我可以看到 getCellValue() 在每个单元格上都被调用。
当输入更新而不在每个实例上调用该方法时,是否有某种方法可以调用 getCellValue()?
(我将此代码基于本教程中的代码: https ://github.com/graunked/spreadsheet 您可以通过在计算函数中放置一个 console.log 来看到相同的行为。如果将数组增加到 20 x 20 个元素,当您键入任何内容时它开始变慢。)