强制 ng-include 重新渲染

Force ng-include to re-render

我正在尝试让 ng-include 在 $scope 变量发生变化时重新渲染。例子.

<div ng-include src="'assets/courses/templates/editModules/'+currentEditExercise.editTemplate"></div>

我的问题是,如果 currentExercise.editTemplate 发生变化,但它具有相同的模板文件。它不会重新渲染,因此不会触发控制器来更新 currentExercise 模型。

在控制器上:

$scope.currentEditExercise = param.exercise;

在 ng-include 模板上: 我为那个模板调用了一个子控制器。

$scope.exercise = $scope.$parent.currentEditExercise;

发生这种情况是因为 ng-include 源已缓存。
可以通过向模板添加随机查询字符串来防止这种缓存 url:

替换:

$scope.currentEditExercise = param.exercise;

与:

$scope.currentEditExercise = param.exercise + '?r=' + Math.random();

因此,每当您更改 currentEditExercise 时,完整的 url 更改,即使 param.exercise 没有更改。