Tag: ngroute

Angular 1 – 获取当前的URL参数

我想从当前URL中提取数据并在控制器中使用它。 例如,我有这个url: app.dev/backend/surveys/2 我想提取的位: app.dev/backend/:type / :id Angular中有什么可以帮助我完成这个任务吗?

AngularJS:如何从控制器function切换视图?

我正在尝试使用AngularJS的ng-clickfunction来切换视图。 我将如何去执行下面的代码? 的index.html <div ng-controller="Cntrl"> <div ng-click="someFunction()"> click me <div> <div> controller.js function Cntrl ($scope) { $scope.someFunction = function(){ //code to change view? } }

在AngularJS中读取查询参数的最简洁方法是什么?

我想阅读使用AngularJS的URL查询参数的值。 我使用以下URL访问HTML: http://127.0.0.1:8080/test.html?target=bob 如预期的那样, location.search是"?target=bob" 。 为了访问目标的价值,我发现网上列出的各种例子,但没有一个在AngularJS 1.0.0rc10中工作。 具体而言,以下都是undefined : $location.search.target $location.search['target'] $location.search()['target'] 任何人都知道什么会工作? (我使用$location作为我的控制器的参数) 更新: 我已经发布了一个解决scheme,但我并不完全满意。 开发人员指南中的文档:Angular Services:使用$ location指出以下有关$location : 我应该何时使用$ location? 任何时候你的应用程序需要对当前URL中的变化做出反应,或者如果你想改变浏览器中的当前URL。 对于我的情况,我的页面将从一个带有查询参数的外部网页打开,所以我不是“对当前URL的改变做出反应”。 所以也许$location不是正确的工具(丑陋的细节,请参阅下面的答案)。 因此,我已经把这个问题的标题从“如何使用$ location读取AngularJS中的查询参数? 到“在AngularJS中读取查询参数的最简洁的方法是什么?”。 很明显,我可以使用JavaScript和正则expression式来parsinglocation.search ,但是如此低级的东西基本上会触犯我的程序员的敏感性。 所以:有没有更好的方法来使用$location比我在我的答案,还是有一个简洁的替代?

根据情况redirect到一定的路线

我正在编写一个小的AngularJS应用程序,它有一个login视图和一个主视图,configuration如下: $routeProvider .when('/main' , {templateUrl: 'partials/main.html', controller: MainController}) .when('/login', {templateUrl: 'partials/login.html', controller: LoginController}) .otherwise({redirectTo: '/login'}); 我的LoginController检查用户/传递组合,并在$ rootScope上设置一个属性来反映这一点: function LoginController($scope, $location, $rootScope) { $scope.attemptLogin = function() { if ( $scope.username == $scope.password ) { // test $rootScope.loggedUser = $scope.username; $location.path( "/main" ); } else { $scope.loginError = "Invalid user/pass."; } } 一切正常,但如果我访问http://localhost/#/main我最终绕过login屏幕。 我想写一些东西,如“每当路由发生变化,如果$ rootScope.loggedUser为空,然后redirect到/login” … 等等 […]

从AngularJS URL删除片段标识符(#符号)

是否有可能从angular.jsurl中删除#符号? 我仍然希望能够使用浏览器的后退button等,当我改变视图,并将用PARAMS更新url,但我不想#符号。 教程routeProvider声明如下: angular.module('phonecat', []). config(['$routeProvider', function($routeProvider) { $routeProvider. when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}). when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}). otherwise({redirectTo: '/phones'}); }]); 我可以编辑这个具有相同的function没有#?