刷新 ng-repeat 即使什么都没有改变
Refresh ng-repeat even nothing has changed
我在 ng-repeat
中进行了一些 dom 操作。现在我想重置我的 DOM 以匹配 ng-repeat
正在循环的模型。如何强制 AngularJS 重绘 ng-repeat
内容。
应用显然不起作用,因为没有对模型进行任何更改。
ng-repeat
的整体思路是遵循模型。如果你想改变内容,你真的应该改变模型。至于 dom 操作,您应该在 angular 组件或指令中执行这些操作,并再次使其遵循模型。
如果你不这样做,你可能根本就不用 Angular。
如果您粘贴一些代码,那就太好了,但是无论如何,假设我们有这个:
$scope.rows = [1,2,3];
<div ng-repeat="row in rows">
{{row}}
</div>
为了使用 ng-repeat
重新绘制相同的数据,您需要以某种方式更改范围。您可以在 DOM 操作
之后尝试此操作
$scope.rows = angular.copy($scope.rows);
其实你不需要做任何特殊的事情来重新绑定angular js中的DOM。 Angular JS 支持 two way data binding,因此当您的模型发生变化时,DOM 对象会自动重新绑定修改后的内容。所以你所要做的就是重新绑定你的控制器变量,它会自动更新 DOM.
我在 ng-repeat
中进行了一些 dom 操作。现在我想重置我的 DOM 以匹配 ng-repeat
正在循环的模型。如何强制 AngularJS 重绘 ng-repeat
内容。
应用显然不起作用,因为没有对模型进行任何更改。
ng-repeat
的整体思路是遵循模型。如果你想改变内容,你真的应该改变模型。至于 dom 操作,您应该在 angular 组件或指令中执行这些操作,并再次使其遵循模型。
如果你不这样做,你可能根本就不用 Angular。
如果您粘贴一些代码,那就太好了,但是无论如何,假设我们有这个:
$scope.rows = [1,2,3];
<div ng-repeat="row in rows">
{{row}}
</div>
为了使用 ng-repeat
重新绘制相同的数据,您需要以某种方式更改范围。您可以在 DOM 操作
$scope.rows = angular.copy($scope.rows);
其实你不需要做任何特殊的事情来重新绑定angular js中的DOM。 Angular JS 支持 two way data binding,因此当您的模型发生变化时,DOM 对象会自动重新绑定修改后的内容。所以你所要做的就是重新绑定你的控制器变量,它会自动更新 DOM.