【问题标题】:Navigating through forms AngularJS浏览表单 AngularJS
【发布时间】:2016-07-13 22:20:42
【问题描述】:

我有两种不同的 HTML 表单

  1. index.html
  2. home.html

我正在尝试在 index.html 中创建一个登录名,如果它通过了身份验证,我想导航到 home.html,如果不是,我将显示一条警报消息。但是页面没有导航。关于我做错了什么有什么想法吗?

我的代码如下

index.html

<body>

<div ng-app="myApp" ng-controller="myCtrl">
<div ng-view></div>
<form ng-submit="login(username, password)">
      <label>User name</label>
      <input type="text" ng-model="username" class="ng-pristine ng-valid">
      <label>Password</label>
      <input type="password" ng-model="password" class="ng-pristine ng-valid">
      <br/>  

      <br/><br/>
      <button class="btn btn-success" ng-click="">Submit</button>
      <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
</form>

</div>
<script>
var app = angular.module('myApp', ['ngRoute']);
app.config([ '$routeProvider', '$locationProvider',
    function($routeProvider, $locationProvider) {
        $routeProvider.when('/home', {
            templateUrl : 'home.html',
            controller : 'HomeController'
        }).
        $routeProvider.when('/', {
            templateUrl : 'index.html',
            controller : 'myCtrl'
        }).
        otherwise({
               redirectTo: 'home.html'
            });
       //$locationProvider.html5Mode(true); //Remove the '#' from URL.
    }
]);

app.controller('myCtrl', function($scope,$location) {
    // $scope.count = '';
    $scope.login = function(username, password) {
        if (username == 'admin' && password == '1234')
         { 
         $location.path("/home" );
         }
        else
        {
         alert('invalid username and password');
        } 
    }
});
</script>

</body>

home.html

<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="HomeConroller">

<button ng-click="myFunction()">Click Me!</button>

<p>{{ count }}</p>

</div>
<script>
var app = angular.module('myApp', []);
app.controller('HomeConroller', function($scope) {
    $scope.count = 0;
    $scope.myFunction = function() {
        $scope.count++;
    }
});
</script>

</body>
</html>

【问题讨论】:

  • 试试$state.go("/home");。确保将$state 注入控制器
  • @theblindprophet 在 ngRoute 中没有 $state
  • 应该在控制台中看到控制器名称拼写错误
  • 如何检查控制台中的错误?
  • 你应该只有一页......并且模板只包含内容所需的html。建议你学习路由如何工作的教程

标签: javascript angularjs forms


【解决方案1】:

试试:

window.location.href = "home.html";

代替

$location.path("/home" );

【讨论】:

  • 还是没用!!!事实上,当我不进行身份验证时,它也不会显示警报!有什么想法吗??
  • home.html 是一个模板。这不是角度路由的工作原理
  • @charlietfl 我需要做什么?
猜你喜欢
  • 2014-09-11
  • 2014-09-24
  • 2018-04-28
  • 2010-09-27
  • 1970-01-01
  • 2015-08-05
  • 2013-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多