Articles of angular ui router

有angular的ui路由器没有注入到控制器的决心

我刚刚开始使用Angular和Express,面临艰难的时刻。 我来自Java背景,想学习Angular和Express,因此试图构build一个小应用程序。 我正在尝试做的 :我已经给用户一个密码重置链接,以便改变他的密码。 链接是这样的: 本地主机:9000 / RESET /:令牌 现在,我创build了一个简单的视图,其中显示了一个input框,如果令牌有效,则更改其密码,否则基于ng-show angular属性显示令牌无效时显示错误。 问题 :在我可以渲染我上面创build的视图之前,我想让ui-router检查:token是否有效。 我将在我的控制器中使用令牌的有效性信息来控制上面提到的ng-show属性。 读完这个之后,我试图利用$ stateProvider.statefunction进行parsing,以获得令牌validation的响应作为先决条件。 这将帮助我渲染实际的视图,我正在使用ng-show技术来显示错误消息或input框来更改基于ui-routerparsingpromiseObject的密码。 现在是什么问题? 那么,在我头脑太久之后,我决定在这里发表我的问题。 任何人都可以帮我吗? 我的问题: 1.我能够从api调用中获取数据/错误,但不知何故,ui-router并没有将其注入到控制器中。 谁能告诉我,我在这里做错了什么? 2.现在,如果令牌无效,我将从后端api返回404响应。 但前端的工厂方法把它作为err(这是在Node.js中预期?)和err被抛出导致deferred.reject()。 现在,如果我使用ui路由器定义,如果承诺没有解决,那么视图将不会被渲染,对吗? 有什么办法可以将这个错误也传递给我的控制器? 我要求通过err的原因是,我的视图的ng显示逻辑是基于响应代码(4xx / 2xx),这取决于我将显示错误消息还是input框。 代码片段: 调用其余api的工厂方法: isPasswordResetTokenValid: function(token, callback) { var cb = callback || angular.noop; var deferred = $q.defer(); return User.getUserByPasswordResetToken(token, function(data) { deferred.resolve(data); return cb(data); }, function(err) […]

MEAN堆栈如何处理login和redirect

我有一个简单的MEAN堆栈应用程序,只是尝试了解身份validation,并使其工作。 你可以在github上签出完整的程序: https : //github.com/7seven7lst/chatterApp 在Angular(app.js)中,我有以下的个人资料路由被限制: angular.module('chat', ['ui.router', 'chat.main', 'chat.signin', 'chat.profile']) .config(function($stateProvider, $urlRouterProvider, $httpProvider) { $urlRouterProvider.otherwise('/'); $stateProvider .state('home', { url: '/', templateUrl: 'views/main.html', controller: 'MainCtrl' }) .state('signin', { url: '/signin', templateUrl: 'views/signin.html', controller: 'SigninCtrl' }) .state('profile', { url: '/profile', templateUrl: 'views/profile.html', controller: 'ProfileCtrl' }); // the following will give angular injection error /* $httpProvider.interceptors.push(function($q, $state) […]

节点redirect不能在angular度上工作

嗨,我是新的节点,我正在build立一个简单的MEAN堆栈应用程序,以减less我发送像这样的前端文件的代码 app.use(express.static(path.join(__dirname, 'public'))); 我也build立了一个简单的authentication中间件 requireLogin = function (req, res, next) { if (!req.user) { console.log('redirecting :)'); res.redirect('/'); } else { next(); } }; app.use('/rooms',requireLogin); 我试图在angular度上使用这个中间件。 但是这不工作,当我浏览我的angular度的应用程序(它工作时,我直接把url到地址栏)我也删除了/#/这是由angular添加。 $locationProvider.html5Mode({ enabled: true, requireBase: false }); 我正在使用ui路由器进行路由。

如何结合护照和angular-UI路由

我想知道如何将angular度路由与护照相结合。 我find的所有示例都使用node.js路由。 var routerApp = angular.module('routerApp', ['ui.router']); routerApp.config(function($stateProvider, $urlRouterProvider) { $urlRouterProvider.otherwise('/home'); $stateProvider .state('home', { url: '/home', templateUrl: 'partial-home.html' }) .state('about', { // for example just show if is loggedIn }); 如何在上面的代码片段中实现这个function? function isLoggedIn(req, res, next) { // if user is authenticated in the session, carry on if (req.isAuthenticated()) return next(); // if they aren't redirect […]

节点js中的二级路由改变了根目录

在我的web项目中,我同时使用angular JS和node JS。 为了在Angular JS中路由我的URL,我使用了下面的代码 app.config(function($routeProvider,$locationProvider) { $routeProvider .when("/expert/:expertname*", { templateUrl : "public/views/individual_expert.html", controller:"usercontroller" }) .otherwise({ redirectTo:"/home" }) $locationProvider.html5Mode(true); }); 在上面的情况下,生成的url如下,页面显示正确。 HTTP://本地主机:3002 /专家/ 58200b0f3574801df4ef767c 当我用浏览器刷新我的页面时,执行同样的事情我的NODE JS代码被执行。 代码片段如下 app.get('/expert/:expertname',function(req,res){ if(req.session.usersession!=null){ if(req.session.usersession.type=="Member") res.sendfile('index/member_index.html'); else if(req.session.usersession.type=="Expert") res.sendfile('index/expert_index.html'); else if(req.session.usersession.type =="Admin") res.sendfile('index/admin_index.html'); else res.sendfile('index/visitor_index.html'); } else res.sendfile('index/visitor_index.html'); }); 在这个时候,我在浏览器上看到的错误如下 1.)我所有的CSSpath都改变了。 2.)我所有的JSpath都改变了。 我注意到的是,它正在改变我的根目录与“专家”,并试图search该目录中的所有导入。 我被困在这个很长的时间。 提前谢谢你帮助我。 如果你没有正确地得到我的问题,你可以发表评论。

ui-router中的多个ui-view html文件

是否有可能使用ui-view使用2个或更多的html文件? 我需要它是这样的: 我已经尝试了一些关于plinker的工作,但看起来我显然不理解概念。 我已经阅读了一个嵌套的ui-vew教程,但是他们很简单地创build一个index.html并在其中放置多个ui-view,但是我需要多个.html文件。 test.html只是一些文本,应该显示在主标题下 index.html看起来像这样 <html ng-app="MyApp"> <head> <link href="stylesheets/style.css" rel="stylesheet"> </head> <body> <h4> This should be Master header </h4> <div ui-view></div> <script data-require="angular.js@*" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script> <script data-require="ui-router@*" data-semver="0.2.10" src="https://rawgit.com/angular-ui/ui-router/0.2.10/release/angular-ui-router.js"></script> <script src="app.js"></script> <script src="controllers/main.js"></script> </body> </html> 这是app.html <head> <link href="stylesheets/style.css" rel="stylesheet"> </head> <body> <h4> This should be Sub master header </h4> <div ui-view></div> </body> […]

使用Node.js在HTML5mode中进行angular度路由

我知道还有其他答案,但他们似乎有警告。 这个会导致一个redirect ,这对我的使用Mixpanel的前端应用程序来说可能是致命的,在浏览器中双重载入Mixpanel会导致Maximum Call Stack Size Exceeded错误。 这个使用我个人无法工作的sendFile 。 试图诊断,我只是build议使用express.static() 。 目前我的代码如下所示: home.js – 一些路线,最后一个打算成为前端网站。 var indexPath = path.resolve( __dirname, '../' + process.env.PUBLIC_FOLDER ) router.get( '/:user/:stream/:slug', function( req, res, next ) { if ( req.headers['user-agent'].indexOf( 'facebook' ) != -1 ) { // stuff to handle the Facebook crawler } else return next() }) router.get( '/*', […]