Ich war in der Lage, eine Lösung zu finden, die mit eckigen 1.2.15 arbeitet.
Der Kern davon ist, ein Attribut target
zu jeder Verbindung hinzuzufügen und dann den $location
Dienst zu verwenden, um den Standort zu ändern.
Basierend auf dem aktuellen Winkelcode werden Anchor-Tags mit einem Zielattribut ignoriert (beachten Sie, dass diese Lösung eventuell beschädigt wird).
Um dies zu tun, dies sicherzustellen Javascript vor Winkel läuft:
// prevent angular from taking over link clicks until we have frontend routing
$(document.documentElement).on("click","a",function(event) {
var elem = $(this), target = elem.attr("target");
if(!target) {
elem.attr("target","_self");
setTimeout(function() {
elem.removeAttr("target");
});
}
});
Danach wird Ihr Standort Provider konfigurieren html5mode verwenden:
angular.module("App", ["App.controllers"]).config([
"$locationProvider", function($locationProvider) {
if (history.pushState) {
$locationProvider.html5Mode(true);
}
}
]);
in Ihrem Controller Nun, die injizieren Standort-Service und verwenden Sie es normalerweise:
angular.module("App.controllers",[]).controllers("SomeController", ["$scope", "$location", function($scope,$location){
$scope.updateLocation = function() {
if (history.pushState) {
$location.path("/new/path/here");
}
};
}]);
Ich bin zu fest mit diesem Problem .. was ist der Grund, warum das passiert? wissen Sie? – supersan