Angularjs $compile函数在第一次找到小部件后无法找到它

Angularjs $compile函数在第一次找到小部件后无法找到它,angularjs,Angularjs,我有一个搜索页面,用户在其中输入查询,然后使用$http服务更新结果 我使用$compile来显示不同类型的小部件。当我第一次访问页面/重新加载页面时,一切正常,但当我使用下面的方法设置位置时 $location.path("/search/" + $scope.q); 这反过来会触发控制器和整个搜索过程,$compile函数无法找到小部件 这可能是什么原因 编辑:我发现了为什么$compile第一次起作用,但之后就不起作用的问题。我后来发现的另一件事是视图正在更新,即在文本框中键入内容后,一

我有一个搜索页面,用户在其中输入查询,然后使用$http服务更新结果

我使用$compile来显示不同类型的小部件。当我第一次访问页面/重新加载页面时,一切正常,但当我使用下面的方法设置位置时

$location.path("/search/" + $scope.q);
这反过来会触发控制器和整个搜索过程,$compile函数无法找到小部件

这可能是什么原因

编辑:我发现了为什么$compile第一次起作用,但之后就不起作用的问题。我后来发现的另一件事是视图正在更新,即在文本框中键入内容后,一切都开始正常工作。问题与$templateCache有关。基本上,缓存回调是在用户进行一些交互之前不会发生的,比如在输入框中键入内容或从具有关联模型绑定的输入中删除字符

在通过编辑源文件删除缓存使用后,它工作得很好。就这一点提出了一个问题


你有提琴或弹琴吗?整个代码库很大而且分散。还是让我来提取相关信息。