如果$ 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;

最佳答案

这是因为ng-include源被缓存。
可以通过将随机查询字符串添加到模板url来防止这种缓存:

更换:

$scope.currentEditExercise = param.exercise;


带有:

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


因此,每当更改currentEditExercise时,即使param.exercise不变,完整的url也将更改。

10-02 16:14