Tag: angularjs routing

AngularJS路由服务器端支持(NodeJS + express)

我在服务器上使用NodeJS + expressJS,在客户端上使用AngularJS AngularJS控制器有以下路线: app.config(function($routeProvider,$locationProvider) { $routeProvider .when('/field1/:id', { controller: 'ctrl1', templateUrl: "/view/mainpages/field1.html" }) .when('/field2/:id', { controller: 'ctrl2', templateUrl: "/view/mainpages/field2.html" }) ……….. many many .when('/', { controller: 'ctrl0', templateUrl: "/view/mainpages/index.html" }) .otherwise({redirectTo : '/'}); NodeJS静态: app.all('/*', express.static(__dirname + '/client')); 如何使服务器redirect他们的path上的所有静态页面相对于根,在这种情况下,直接通过这个链接的调用。 例如: server:3000/field1/23必须调用server:3000/client/index.html并且索引必须上传JS,例如server:3000/js/cntr1.js 更新:我find了解决问题的办法。 但它看起来丑陋的拐杖 app.get('/field1/([0-9]+$)', function(req, res, next) { req.url='/index.html'; next(); }); app.use('/field1', express.static(__dirname + […]

在Node.js&Express上使用Angular的客户端边界

我在服务器端使用Node&Express,在客户端使用Angular。 但是我不能实现Angular客户端路由。 我的Angular路由器看起来像这样: app.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/blogs', { templateUrl: 'partials/blogs', controller: 'BlogController' }). when('/news', { templateUrl: 'partials/news', controller: 'NewsController' }). otherwise({redirectTo: '/'}); }]); 这是我的服务器路由: app.use('/',routes.index); app.use('/partials/:filename',routes.partials); 和我的index.js: exports.partials = function(req, res){ var filename = req.params.filename; if(!filename) return; res.render("partials/" + filename ); }; exports.index = function(req, res){ res.render('index'); }; 但是不是呈现部分,我得到每个URL的索引页面 我究竟做错了什么?

如何将查询string附加到Angular ui-router中的URL

我对AngularJS很新颖。 我使用ui-router和node.js作为我的UI服务器来调用另一台服务器的API。 现在,我无法将查询string附加到URL,具体取决于用户input(下拉select)。 我的AngularJS控制器代码: $scope.getResults = function() { server.getResults($scope.myColor, $scope.mySize) .success(function(data) { results = data; }); }; 以上function的AngularJS服务: app.factory('server', ['$http', function($http){ return { getResults : function(color, size) { var req = {}; req.color = color; req.size = size; return $http({ method: 'GET', url: 'results', params : req }); } } }]); ui路由器在Angular中: $stateProvider.state('home', { url: […]

AngularJS和nodeJs Express:路由和刷新

我的应用程序“工作”很好,但是,当我在浏览器中按F5我的问题出现。 我的应用程序是这样组织的: 快递中的nodeJs + express: app.use(express.static('public')); app.use( app.router ); app.use(function(req, res) { res.sendfile(__dirname + '/public/index.html'); }); 我的angular度路线: app.config(function($locationProvider, $routeProvider) { $locationProvider .html5Mode(true) .hashPrefix('!'); $routeProvider .when('/', { templateUrl: '/page/home.html'}) .when('/activate/:token', { templateUrl: '/page/activate.html'}) .otherwise({ redirectTo: '/' }); }); 和一切工作正常,直到我刷新页面,如果我在本地主机:1234 /激活/ 999它出现刷新良好的页面,但它在控制台这个错误邮票 Error: Template must have exactly one root element. was:<!DOCTYPE html> <html ng-app=app xmlns="http://www.w3.org/1999/html"> <head> <title>title</title> […]

当html5Mode为true时,AngularJs路由向服务器发起HTTP调用

我已经在我的应用程序中将html5Mode设置为true 。 我有如下定义的路线: app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) { $locationProvider.html5Mode(true); $locationProvider.hashPrefix('!'); $routeProvider. when('/api/', { templateUrl: '../../html/console.html', controller: 'paramsController' }). when('/', { templateUrl: '../../html/timeline.html', controller: 'timelineController' }). otherwise({ redirectTo: '/' }); }]); 但是,每当我做一个请求作为http://localhost:3000/api它会进行HTTP调用,并请求去服务器,而不是解决我的angular度路线。 这是什么我需要在这里照顾。 我有以下标签添加到我的主页: <base href="/"> 只是说,万一它在这里改变任何东西。 是否需要其他configuration? 我正在使用node.js作为express.js的服务器。