强制ng-include重新渲染

时间:2015-11-09 12:43:44

标签: javascript angularjs controller angularjs-ng-include

如果$ scope变量发生变化,我试图让ng-include重新渲染。实施例。

<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;

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为缓存了ng-include个来源 可以通过向模板url:

添加随机查询字符串来防止此缓存

替换:

$scope.currentEditExercise = param.exercise;

使用:

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

因此,每当您更改currentEditExercise时,即使param.exercise没有更改,完整网址也会更改。