2016-03-11 3 views
0

У меня есть узел nodejs с угловым передним концом js. У меня есть следующий код angularjs для маршрутизации.Angularjs route для узла express js backend

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

myApp .config(['$routeProvider', '$locationProvider', function($routeProvider){ 
    $routeProvider 
     .when('/login', { 
      templateUrl : 'login.html', 
      controller: 'loginController' 
     }).otherwise({ 
      templateUrl : 'main.html', 
      controller : 'mainController' 
     }); 
}]); 

и my app.js содержит следующий код. (Примечание: Я использую экспресс JS Framework 3.0)

app.use(app.router); 
app.use('/',function(req, res) { 
    res.sendfile(__dirname + '/public/index.html'); 
}); 

Я положил все HTMLs в общей папке и структура что-то вроде этого.

public/ 
      -css folder 
      -angular dependencies 
      -all my htmls (index.html,login.html,main.html) 
    routes/ 
      -index.js 
    views/ 
      -index.ejs 
      -error.ejs 
    app.js 

Теперь, когда я ударил базовый URL-index.html нагрузки на основе кода, который я дал в app.js приведенных выше. то угловая вставка кода main.html в ng-view div. Когда я нахожусь в/login, я хочу, чтобы login.html загружался. Но вместо этого загружается тот же main.html. может ли кто-нибудь пролить свет на это? Решений мало, но никто не пришел мне на помощь.

ответ

0

How to use AngularJS routes with Express (Node.js) when a new page is requested?

Это помогло мне.

Я внес изменения в

myApp.config(['$routeProvider', '$locationProvider', 
    function($routeProvider,$locationProvider){ 
     $routeProvider 
     .when('/login', { 
      templateUrl : 'login.html', 
      controller: 'loginController' 
     }).when('/', { 
      templateUrl : 'main.html', 
      controller : 'mainController' 
     }); 
    $locationProvider.html5Mode(true); 
}]); 

изменения в app.js

app.use(express.static(path.join(__dirname, 'public'))); 
app.use(express.static(__dirname + '/public')); 
app.use(app.router); 
app.use('/',function(req, res) { 
    res.sendfile(__dirname + '/public/index.html'); 
}); 
0

Я думаю, что вы хотите что-то вдоль линий express.static

app.use(express.static(__dirname + '/public')); 

Если приходит запрос на «login.html» это будет проверить открытый каталог для этого файла первым.

+0

У меня есть, что в моем приложении. – Aspirant9