我有一些跟随控制器,在一些ajax动作之后,它可以很好地动态编译新的DOM元素:
angular.module('cms').controller('CompileHtmlCtrl', [
'$scope', '$compile',
function ($scope, $compile) {
$scope.compileHtml = function (id) {
$compile("#"+id)($scope);
};
}
]);
当我在ajax动作的反应中尝试更改URL时出现问题,因为如果我在任何地方(编译之前或之前)调用pushState
,则角度将总是改变URL。
window.history.pushState({}, '', url);
可以防止角度这样做吗?
使用$digest
已解决。
$compile("#"+id)($scope);
$scope.$digest();
然后我找到了更好的解决方案来关闭角度URL操作Turn off URL manipulation in AngularJS。
答案 0 :(得分:0)
您应该在视图中使用指令而不是控制器,这样您就可以在视图中更改ajax数据,这更像是Angular的方式。为了解决您的问题,我们需要知道您正在使用的Angular路由器。