url angularjs的重定向

时间:2015-04-21 12:53:30

标签: javascript jquery angularjs

我正在构建一个应用程序,我有一点问题。

对于索引,当我点击带有jquery的按钮时,我用history.pushstate更改了我的url。 例如,www.mysite.com在没有重新加载页面的情况下变为www.mysite.com/something。但是如果加载此页面我找不到www.mysite.com因为“某些东西”不存在。

我不知道他们之间的联系如何。

我尝试这样做,但它不适用于AngularJS。

var myApp = angular.module('photo', ['ngRoute']);


myApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: 'machin.html'
    });
    $routeProvider.when('/something-one', {
        templateUrl: 'machin.html'
    });
    $routeProvider.when('/something-two', {
        templateUrl: 'machin.html'
    });
    $routeProvider.otherwise({ redirectTo: '/' });
}]);

这是做到这一点的方式还是我迷失了? ^^


解决

我的解决方案很有效。我忘记了脚本的角度路线,但我的其余部分都有效。

2 个答案:

答案 0 :(得分:1)

在按钮中,您可以使用ng-click绑定事件,而不是使用jQuery。

<button ng-click="goto('/something')">Go to something</button>

在您的控制器中:

$scope.goto = function(url) {
   $location.path(url);
}

当你使用Jquery时,你的角度范围已经超出了范围。所以angular不知道URL的变化。在这种情况下,您可能需要触发digest周期。

答案 1 :(得分:0)

你可以试试这个

var myApp = angular.module('photo', ['ngRoute']);
myApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: 'machin.html'
    })
    .when('/something-one', {
        templateUrl: 'machin.html'
    })
    .when('/something-two', {
        templateUrl: 'machin.html'
    })
    .otherwise({ redirectTo: '/' });
}]);

并在你的HTML中

<a href="#/something-one">Go to something one</a>