【问题标题】:Angular $compile is changing URLAngular $compile 正在更改 URL
【发布时间】:2016-11-04 07:14:10
【问题描述】:

我有以下控制器,它适用于在一些 ajax 操作后动态编译新的 DOM 元素:

angular.module('cms').controller('CompileHtmlCtrl', [
  '$scope', '$compile',
  function ($scope, $compile) {
    $scope.compileHtml = function (id) {
      $compile("#"+id)($scope);
    };
  }
]);

当我尝试更改 URL 以响应 ajax 操作时出现问题,因为如果我在任何地方(编译之后或之前)调用 pushState,angular 总是会更改 URL。

window.history.pushState({}, '', url);

是否可以防止 Angular 这样做?

已解决使用$digest

$compile("#"+id)($scope);
$scope.$digest();

然后我找到了关闭 Angular URL 操作Turn off URL manipulation in AngularJS 的更好的解决方案。

【问题讨论】:

    标签: javascript angularjs ajax


    【解决方案1】:

    您应该在视图中使用指令而不是控制器,这样您就可以更改视图中的 ajax 数据,这更像是 Angular 的做法。为了解决您的问题,我们需要知道您使用的是什么 Angular 路由器。

    【讨论】:

      猜你喜欢
      • 2015-08-23
      • 2020-06-26
      • 2018-08-15
      • 1970-01-01
      • 2022-12-21
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多