标签: angularjs-routing

在routeProvider中找不到AngularJS ng-template指令

我试图包含多个部分模板以包含在一个ng-view,但routeProvider指令总是试图从服务器(而不是嵌入式ng-template)获取文件.

我的HTML中定义了以下内容:

<script type="text/ng-template" id="groupList.html">
  <!-- contents -->
</script>

<script type="text/ng-template" id="participantList.html">
  <!-- contents -->
</script>

<script src="js/app.js"></script> <!-- AngularJS app file -->
Run Code Online (Sandbox Code Playgroud)

在我的app.js文件中,我有以下内容:

var myApp = angular.module('myApp', ['ngResource', '$strap.directives']);

// Update interpolateProvider for Django server
myApp.config(function ($interpolateProvider) {
    $interpolateProvider.startSymbol('[[');
    $interpolateProvider.endSymbol(']]');
});

myApp.config(function ($routeProvider)
{
    $routeProvider.when('/', {
        templateUrl: '../static/views/home.html'
    });

    $routeProvider.when('/group', {
        controller: 'GroupCheckInCtrl',
        templateUrl: 'groupList.html'
    });

    $routeProvider.when('/group/:groupId', {
      controller: 'GroupCheckInCtrl',
      templateUrl: 'participantList.html'
    });

    $routeProvider.otherwise({
        redirectTo: '/'
    });
});
Run Code Online (Sandbox Code Playgroud)

当我加载页面时,我的浏览器控制台出错:

GET http://127.0.0.1:8000/visitorLog/group/groupList.html …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-routing

1
推荐指数
1
解决办法
6863
查看次数

错误未捕获错误:[$ injector:modulerr] angularjs

我正在使用angularjs路由,但得到以下错误...

    <title>Angular js</title>

</head>
<body><div data-ng-controller="SimpleController">
    <div data-ng-view=""></div>
    NAme:<input type="text" data-ng-model="name" />{{name}}
    <br />
    <ul>
        <li data-ng-repeat="cust in customers|filter:name|orderBy:'city'">{{cust.name|uppercase}}-{{cust.city|lowercase}}</li>
    </ul>
        <script>
                var demoapp = angular.module('demoapp', ['ngRoute']);
                demoapp.config(function($routeprovider){
                    $routeprovider
                    .when('/',{
                    controller:'SimpleController',
                    templateUrl:'view1.html'
                })
                  .when('/partial2',{
                controller:'SimpleController',
                templateUrl:'view2.html'
                })
                  .otherwise({redirectTo:'/'});
                });
            demoapp.controller('SimpleController',
            function ($scope) {
                $scope.customers = [{ name: 'aman', city: 'boom' },
                                     { name: 'ajay', city: 'reem dee' },
                                     { name: 'hood', city: 'meen' }];
            });
        </script>
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

控制台上的错误

Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.12/$injector/modulerr?p0=demoapp&p1=Error%3…0Yb%20(http%3A%2F%2Flocalhost%3A4257%2Fscripts%2Fangular.min.js%3A32%3A232)
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-routing

1
推荐指数
1
解决办法
8253
查看次数

为什么角度重定向到路线但加载错误的视图

我有一个基本的需求,我想用路线来解决:

  1. 定义了一堆路线
  2. 如果用户未经过身份验证,则会将其重定向到登录页面

我的问题是,第一次显示Web应用程序时,用户似乎被正确重定向,因为URI是正确的,但不是显示的视图(它对应于默认视图).

我已经为此创建了一个jsbin,如果你更愿意看到它是真的.该结果可以在这里看到.

重现步骤:

  1. 加载页面
  2. 您会看到needsAuth,这意味着needsAuth即使URI包含登录(对应于视图login),也会显示视图的内容
  3. 重新加载页面
  4. 你看'登录',意思是视图的内容 login

HTML代码:

<!DOCTYPE html>
<html ng-app='app'>
<head>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular.js"></script>
  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.2/angular-route.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body>
  <div ng-view>
  </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是javascript代码:

var template = '{{vm.text}}';

angular
  .module('app', ['ngRoute'])
  .config(['$routeProvider', routes])
  .controller('needsAuthController', needsAuthController)
  .controller('loginController', loginController)
  .run(['$rootScope', '$location', registerRedirection]);

function routes($routeProvider){
  $routeProvider
    .when('/needsAuth', {
      controller: 'needsAuthController',
      controllerAs: 'vm',
      template: template
    })
    .when('/login', {
      controller: 'loginController', …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-routing

1
推荐指数
1
解决办法
1162
查看次数

使用routeProvider的href加载新页面而不是绑定视图

我遇到了routeProvider.我的链接不断打开新页面,而不是在视图中加载模板.

我的代码如下

raceApp.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'raceApp/createChallenge_view.php',
            controller: 'createChallenge'
        })
        .when('/createchallenge', {
            templateUrl: 'raceApp/createChallenge_view.php',
            controller: 'createChallenge'
        })
        .when('/findchallenge', {
            templateUrl: 'raceApp/findChallenge_view.php',
            //controller: 'findChallenge'
        })
        .otherwise({
            redirectTo: '/'
        });
}]);
Run Code Online (Sandbox Code Playgroud)

我的HTML看起来像

<base href="/runkinlocal/wp-content/themes/wordpress-bootstrap-master/" />

<a class="menu-item select-runner0" href="#/createChallenge">
<a class="menu-item select-runner0" href="#/findchallenge">
Run Code Online (Sandbox Code Playgroud)

当页面加载时,加载初始模板,但是当我点击其中一个链接时,加载一个新页面而不是在视图中加载模板(该页面看起来像http://test.com:8888/runkinlocal/wp-content/themes/wordpress-bootstrap-master /#/ createChallenge)

我正在使用Wordpress.

我期待着你的帮助!

angularjs angularjs-routing

1
推荐指数
1
解决办法
4477
查看次数

路由器未在ng视图中加载的页面

    <head>
    <script src=jquery.js></script> 
    <script src=bootstrap.js></script> 

    <script src=angular.js></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>
    <link rel=stylesheet type="text/css" href=bootstrap.css /> 
    <link rel=stylesheet type=text/css href=mystyle.css /> 

    <style>
        #panel{margin:20px;}
        #addNew{margin:10px;}
        #pagination{text-align:center;}
        span{background:#aaa;width:60px;width:60px;}
    </style> 

</head>

<body ng-app="myApp">

    <div ng-controller=myController> 

         <div id=panel class="panel panel-primary"> 
            <div class="panel-heading">Hero Selection Bar</div>
            <div class="panel-body">
                <a href="#/one">Page 1</a>
                <a href="#/two">Page 2</a>
                <a href="#/three">Page 3</a>

                <ng-view > </ng-view> 

            </div>
        </div> 
    </div> 


    <script>
    var app = angular.module('myApp',['ngRoute']);

    app.controller('myController', function( $scope, $routeProvider){
        $scope.somedata = "THAT"; 
    });

    app.config([$routeProvider],function($routeProvider){
        $routeProvider
        .when('#/one',  {templateUrl:"templates/one.html"})
        .when('#/two',  {templateUrl:"templates/two.html"})
        .when('#/three',    {templateUrl:"templates/three.html"})
    });  

    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

我将文件保存在'templates …

routing angularjs angularjs-routing

1
推荐指数
1
解决办法
4312
查看次数

如何解决 AngularJs 路由不起作用的问题

我正在编写一些简单的代码来练习角度路由。我有一个 index.html 文件,其中包含用于访问相应模板的链接和用于显示模板的 div 元素。然而,当单击链接时,模板不会显示,并且 URL 也不会按预期显示。

url 显示为: http://localhost/angproj/#!#%2Fhome 而不是预期的http://localhost/angproj#/home

这是代码:

索引.html

<!DOCTYPE html>
<html ng-app = "myModule">
<head>
    <title>Home</title>
    <link rel="stylesheet" href ="styles.css">
    <script src="angular/angular.min.js"></script>
    <script src="angular-route.min.js"></script>
    <script src="script.js"></script>
    <meta name="vieport" content="width=device-width initial scale=1">
</head>
<body>
    <header><h2>Website Header</h2></header>
        <div class="column">
            <div class="links">
            <a href="#/home">Home</a><br>
            <a href="#/services">Our services</a><br>
            <a href="#/technologies">Technologies</a><br>
        </div>
        </div>
        <div class="content" ng-view></div>
    <footer><h3>Website footer</h3></footer>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

脚本文件

var myApp = angular
            .module("myModule",["ngRoute"])
            .config(function($routeProvider){
                $routeProvider
                .when("/home",{
                    template:"About Us"
                })
                .when("/services",{
                    template:"Our Services"
                })
                .when("/technologies",{
                  template:"Our Technologies" …
Run Code Online (Sandbox Code Playgroud)

html javascript angularjs angularjs-routing

1
推荐指数
1
解决办法
5350
查看次数

AngularJS仅在浏览器的后退按钮上重定向路由

在我的AngularJS应用程序中,route当用户未登录时,我将重定向到特定页面.要做到这一点,我正在使用变量$rootScope.

现在我想在用户登录时阻止浏览器的后退按钮.我想将其重定向到特定页面(registration视图).问题是我不知道是否有后退按钮事件.

我的代码是:

 angular.module('myApp',[...]
//Route configurations
}])
.run(function($rootScope, $location){
               $rootScope.$on('$routeChangeStart', function(event, next, current){
                   if(!$rootScope.loggedUser) { 
                       $location.path('/register');
                   }
               });
               $rootScope.$on('$locationChangeStart', function(event, next, current){
                   console.log("Current: " + current);
                   console.log("Next: " + next);
               });
           });
Run Code Online (Sandbox Code Playgroud)

所以在$locationChangeStart我写一个伪代码,如:

if (event == backButton){
     $location.path('/register');
}
Run Code Online (Sandbox Code Playgroud)

可能吗?

一个天真的解决方案是编写一个函数,检查是否nextcurrent错误的顺序,检测用户是否回去.

还有其他解决方案吗?我正以错误的方式解决问题?

javascript redirect back angularjs angularjs-routing

0
推荐指数
1
解决办法
2万
查看次数

angularjs没有加载部分

我正试图通过django整理一个基本的angularjs网页(但在这个例子中并没有真正使用django).我试图完全复制一个例子,但它不起作用.部分和控制器未加载.网址已更新,因此我知道应用正在加载.但我看不到它部分或数据完全打击我的网络服务器.帮助将不胜感激.

这是我可以放在一起的最简单的代码.

的test.html:

<!doctype html>
<html ng-app="ciqApp">
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.js"></script>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular-route.js"></script>
        <script type="text/javascript" src="js/app.js"></script>
        <script type="text/javascript" src="js/controllers.js"></script>
    </head>
    <body>
        TEST
        <div ng-view>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

JS/app.js

var ciqApp = angular.module('ciqApp', [
        'ngRoute',
        'ciqControllers'
        ]);

ciqApp.config(['$routeProvider',
        function($routeProvider){
            $routeProvider.
                when('/questions', {
                    templateURL: '/static/partials/question-list.html',
                    controller: 'QuestionListCtrl'
                }).
                otherwise({
                    redirectTo: '/questions'
                });
        }]);
Run Code Online (Sandbox Code Playgroud)

JS/controllers.js

var ciqControllers = angular.module('ciqControllers', []);

ciqControllers.controller('QuestionListCtrl', ['$scope', '$http',
        function ($scope, $http) {
            $http.get('/get_questions').success(function(data) {
                $scope.questions = data;
            });
        }]);
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-routing

0
推荐指数
1
解决办法
2036
查看次数

在Controller AngularJS中加载templateUrl

我的AngularJS中有一个$ routeProvider,它提供了templateUrl和controller,

我想知道是否可以在控制器内制作temlateUrl.

原因是我的代码部分异步,这将减轻复杂性.

angularjs angularjs-routing

0
推荐指数
1
解决办法
5370
查看次数

基于权限级别显示/隐藏零件的最佳方式 - Angular JS

我有一个AngularJS单页面应用程序,其中有很多HTML块,我根据他们的权限级别向用户显示.

用户权限由service呼叫确定,并且基于权限设置值.

$scope.permission = 'admin'

我可以使用ng-hide/show指令根据权限隐藏这些块.但我担心安全问题.通过更改css display属性,未经授权的人也可以查看这些块.

另一种选择是ng-if,我目前正在使用它.但我想知道我是否应该这样做routing,我相信这更安全.我可以使用ui.router角度模块来实现这一点.但是正确的方法是什么?

我应该使用ng-hide/show,ng-if还是routing

期待一些好的想法.

任何帮助是极大的赞赏.提前致谢.

javascript angularjs angularjs-routing

0
推荐指数
1
解决办法
6952
查看次数

在Angular UI Router中提供带ID的URL

我有一个问题,当我编辑数据时,我的网址没有显示id示例:/answer/1 or /answer/2 or /answer/3等我很困惑,因为我使用UI ROUTER 我是初学者使用UI ROUTER angularjs.你能帮助我吗 ?我该怎么办 ?谢谢

我的路由代码:

.state({
    name: 'answer',
    url : '/answer/',
    params : {
                obj : null  
    },
    controller: 'answer-controller',
    templateUrl: 'templates/table-answer.html'
})
Run Code Online (Sandbox Code Playgroud)

ng-click转到表格答案:

<button type="button" class="btn btn-default" ng-click="ListAnswer(data.item)"><i class="fa fa-eye"></i> View Answer</button>
Run Code Online (Sandbox Code Playgroud)

将params $ scope.ListAnswer传递给answer-controller.js

$scope.ListAnswer = function(data) {

    $state.go('answer', {obj : data});

};
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-scope angularjs-routing angular-ui-router

0
推荐指数
1
解决办法
2672
查看次数

AngularJS模块路由与材料设计CSS问题

我将尝试将材料设计与角度js中的路由集成,但CSS设计不起作用.如果我将使用bootstrap CSS检查它,它正在工作.

Plnker演示

如果我会尝试这种方式,它会给我一些错误

var scotchApp = angular.module('scotchApp', ['ngMaterial']);
Run Code Online (Sandbox Code Playgroud)

错误

未捕获的错误:[$注射器:modulerr] http://errors.angularjs.org/1.2.25/ $喷油器/ modulerr P0 = scotchApp&P1 =错误... gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular? min.js%3A18%3A170)

App.JS

// create the module and name it scotchApp
// also include ngRoute for all our routing needs
// var scotchApp = angular.module('scotchApp', ['ngMaterial']); -- Not Working
var scotchApp = angular.module('scotchApp', ['ngRoute']);

// configure our routes
scotchApp.config(function ($routeProvider) {
    $routeProvider

        // route for the home page
        .when('/', {
            templateUrl: 'pages/home.html',
            controller: 'mainController'
        })

        // route for the about page
        .when('/about', …
Run Code Online (Sandbox Code Playgroud)

css angularjs angularjs-routing angular-material

-4
推荐指数
1
解决办法
579
查看次数