2016-11-04 49 views
0

我有以下控制器,一些Ajax的行動後工作得很好,新的DOM元素的動態編譯:

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

問題是當我試圖改變URL在阿賈克斯行動反應因爲如果我在任何地方(在編譯之前或編譯之前)調用pushState,angular會將URL改回。

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

是否可以防止角度做到這一點?

已解決使用$digest

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

然後我發現mayby更好的解決方案關閉角URL操作Turn off URL manipulation in AngularJS

回答

0

您應該在您的視圖中使用指令而不是控制器,這樣您就可以更改視圖中的ajax數據,這更像是以這種方式執行的角度。爲了解決您的問題,我們需要知道您使用的是哪個Angular路由器。