Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新表的AngularJS模型将插入新单元格并删除另一个单元格_Angularjs - Fatal编程技术网

更新表的AngularJS模型将插入新单元格并删除另一个单元格

更新表的AngularJS模型将插入新单元格并删除另一个单元格,angularjs,Angularjs,今天我在AngularJS上遇到了一个有趣的问题,我想我会发布: 在我的应用程序中,我有一个模型,从中我使用ng repeat创建了一个HTML表,此外,我还有一个与另一个模型绑定的输入字段,并且我已经向该模型注册了一个watch函数。当我在输入字段中输入一些文本时,函数会将该文本写入表中当前选定的单元格 函数完成后,发生了一些事情。不是更新选定单元格的值,而是在当前位置插入一个新单元格,单元格向右移动,最后一个单元格从行中删除。很明显,我希望单元格保持其当前位置,并且只更新子元素 下面是我的代

今天我在AngularJS上遇到了一个有趣的问题,我想我会发布:

在我的应用程序中,我有一个模型,从中我使用ng repeat创建了一个HTML表,此外,我还有一个与另一个模型绑定的输入字段,并且我已经向该模型注册了一个watch函数。当我在输入字段中输入一些文本时,函数会将该文本写入表中当前选定的单元格

函数完成后,发生了一些事情。不是更新选定单元格的值,而是在当前位置插入一个新单元格,单元格向右移动,最后一个单元格从行中删除。很明显,我希望单元格保持其当前位置,并且只更新子元素

下面是我的代码的一个简短示例。模型:

//The model is initialized with empty strings, later the input is supplied by the user
$scope.master.rows = [["", "", ""], ["", "", ""], ["", "", ""]];
HTML代码段:

<table ng-model="master.rows">
    <tr ng-repeat="row in master.rows">
        <td ng-repeat="col in row"
            ng-click="master.click($event.target)">{{ col }}</td>
    </tr>
</table>

事实证明,这种行为是因为我直接向模型对象写入数据。因此,我稍微修改了模型以包含对象,并将值写入对象成员。新模型如下所示:

$scope.master.rows = [[{value: ""}, {value: ""}, {value: ""}],
                      [{value: ""}, {value: ""}, {value: ""}],
                      [{value: ""}, {value: ""}, {value: ""}]
                     ];
在HTML代码段中,我将表达式更改为:

<td ng-repeat="col in row" ng-click="master.click($event.target)">{{ col.value }}</td>
<td ng-repeat="col in row" ng-click="master.click($event.target)">{{ col.value }}</td>
$scope.master.rows[y][x].value = value;