当我使用javascript window.location时,如何使用角度js重定向到页面

时间:2015-05-21 11:49:20

标签: javascript angularjs

我使用javaScript onsubmit函数根据角色重定向到特定页面。我也在我的应用中使用AngularJS。但是当我在填写表单后按Enter键时,页面将直接转到该页面,而不是在ng-view中加载页面。我怎么能解决这个问题?

代码:

function next(){
    var role = location.search.substring(1);
    if ( role == "vp"){
        //alert ("Login successfully");
        window.location = "results.html?vp";//redirecting to other page
        //return false;
    }
    else{
        window.location = "results-locked.html?sales";
    }
}

Angular JS

var module = angular.module("portalApp", ['ngRoute']);

 module.config(['$routeProvider',
        function($routeProvider) {
            $routeProvider.
                when('/home', {
                    templateUrl: 'home.html',
                }).

                when('/results', {
                    templateUrl: 'results.html',
                }).

                when('/lock-results', {
                    templateUrl: 'results-locked.html',
                }).

                otherwise({
                    redirectTo: '/home'
                });
        }]);

HTML:

<div class="search-form">
  <form method="post" name="myform"  action="javascript:next()" class="ourform">
  <img src="images/mic.png" class="mic">
  <input type="search" id="search" name="search" placeholder="Type or speak here to search">
  <input type="image" alt="submit" src="images/search.jpg" class="submit"/>
  </form>
</div>

相反,我想在javascript中使用href="#/results"href="#/results-locked"等内容。

2 个答案:

答案 0 :(得分:0)

我通过修改javascript代码来解决这个问题

function next(){
    var role = location.search.substring(1);
    if ( role == "vp"){
        //alert ("Login successfully");
        window.location = "#/results";//redirecting to other page
        //return false;
    }
    else{
        window.location = "#/lock-results";
    }
}

答案 1 :(得分:0)

你好angularjs有两种模式hashbang模式和html5模式。

您可以从链接中获取详细信息

https://docs.angularjs.org/guide/ $位置

所以如果你在锚标签中使用

<a href="home.html">go to home</a>

它不起作用,所以你必须这样做 激活所需的模式,或者您可以直接在href属性

中使用#
<a href="#home.html">go to home</a>