Angularjs 标题:重新加载页面使用angular在Node.js中获取json文本
比如说,从索引页面,我移动到带有模板的详细页面() 问题是,当我重新加载详细信息页面时,屏幕显示json文本,如下所示:Angularjs 标题:重新加载页面使用angular在Node.js中获取json文本,angularjs,node.js,Angularjs,Node.js,比如说,从索引页面,我移动到带有模板的详细页面() 问题是,当我重新加载详细信息页面时,屏幕显示json文本,如下所示: {"id":1,"title":"foo","teaser":"foo"} 为什么我使用json文本而不是与开头相同的页面 server.js文件: var express = require('express'), app = express(), lastId = 4; var posts = [ { id: 1, title: 'f
{"id":1,"title":"foo","teaser":"foo"}
为什么我使用json文本而不是与开头相同的页面
server.js文件:
var express = require('express'),
app = express(),
lastId = 4;
var posts = [
{ id: 1, title: 'foo', teaser: 'foo' },
{ id: 2, title: 'bar', teaser: 'bar' },
{ id: 3, title: 'foobar', teaser: 'foobar' },
{ id: 4, title: 'baz', teaser: 'baz' }
];
function getPostIdx (id)
{
for (var i = posts.length - 1; i >= 0; i--) {
if (posts[i].id === id)
return i;
}
return null;
}
app.use('/', express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.listen(8080, function () {
console.log("server listen on port 8080");
});
app.get('/', function (req, res) {
res.send(JSON.stringify(posts));
});
app.get('/posts/:postid', function (req, res) {
var postIdx = getPostIdx(parseInt(req.params.postid)),
post = posts[postIdx];
res.send(JSON.stringify(post));
});
var resourceDemo = angular.module('resourceDemo', ['ngResource', 'ngRoute']);
resourceDemo.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/partials/index.html',
controller: 'MainCtrl'
})
.when('/posts/:postid', {
templateUrl: '/partials/detail.html',
controller: 'DetailCtrl',
resolve: {
post: function ($route, Post) {
return Post.get({ postid: $route.current.params.postid }).$promise;
}
}
})
.otherwise({
redirectTo: '/'
});
}]);
resourceDemo.factory('Post', function ($cacheFactory, $resource) {
var Post = $resource('/posts/:postid', {}, {
get: { cache: true, method: 'get'}
});
return Post;
});
resourceDemo.controller('MainCtrl', function ($scope, Post) {
$scope.posts = Post.query();
});
resourceDemo.controller('DetailCtrl', function ($scope, post, Post) {
$scope.post = post;
});
<!DOCTYPE html>
<html lang="en" ng-app="resourceDemo">
<head>
<base href="/">
<meta charset="UTF-8">
<title>Resource</title>
</head>
<body>
<h1>Resource demo</h1>
<div ng-view></div>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="src/app.js"></script>
</body>
</html>
app.js文件:
var express = require('express'),
app = express(),
lastId = 4;
var posts = [
{ id: 1, title: 'foo', teaser: 'foo' },
{ id: 2, title: 'bar', teaser: 'bar' },
{ id: 3, title: 'foobar', teaser: 'foobar' },
{ id: 4, title: 'baz', teaser: 'baz' }
];
function getPostIdx (id)
{
for (var i = posts.length - 1; i >= 0; i--) {
if (posts[i].id === id)
return i;
}
return null;
}
app.use('/', express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.listen(8080, function () {
console.log("server listen on port 8080");
});
app.get('/', function (req, res) {
res.send(JSON.stringify(posts));
});
app.get('/posts/:postid', function (req, res) {
var postIdx = getPostIdx(parseInt(req.params.postid)),
post = posts[postIdx];
res.send(JSON.stringify(post));
});
var resourceDemo = angular.module('resourceDemo', ['ngResource', 'ngRoute']);
resourceDemo.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/partials/index.html',
controller: 'MainCtrl'
})
.when('/posts/:postid', {
templateUrl: '/partials/detail.html',
controller: 'DetailCtrl',
resolve: {
post: function ($route, Post) {
return Post.get({ postid: $route.current.params.postid }).$promise;
}
}
})
.otherwise({
redirectTo: '/'
});
}]);
resourceDemo.factory('Post', function ($cacheFactory, $resource) {
var Post = $resource('/posts/:postid', {}, {
get: { cache: true, method: 'get'}
});
return Post;
});
resourceDemo.controller('MainCtrl', function ($scope, Post) {
$scope.posts = Post.query();
});
resourceDemo.controller('DetailCtrl', function ($scope, post, Post) {
$scope.post = post;
});
<!DOCTYPE html>
<html lang="en" ng-app="resourceDemo">
<head>
<base href="/">
<meta charset="UTF-8">
<title>Resource</title>
</head>
<body>
<h1>Resource demo</h1>
<div ng-view></div>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="src/app.js"></script>
</body>
</html>
index.html文件:
var express = require('express'),
app = express(),
lastId = 4;
var posts = [
{ id: 1, title: 'foo', teaser: 'foo' },
{ id: 2, title: 'bar', teaser: 'bar' },
{ id: 3, title: 'foobar', teaser: 'foobar' },
{ id: 4, title: 'baz', teaser: 'baz' }
];
function getPostIdx (id)
{
for (var i = posts.length - 1; i >= 0; i--) {
if (posts[i].id === id)
return i;
}
return null;
}
app.use('/', express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.listen(8080, function () {
console.log("server listen on port 8080");
});
app.get('/', function (req, res) {
res.send(JSON.stringify(posts));
});
app.get('/posts/:postid', function (req, res) {
var postIdx = getPostIdx(parseInt(req.params.postid)),
post = posts[postIdx];
res.send(JSON.stringify(post));
});
var resourceDemo = angular.module('resourceDemo', ['ngResource', 'ngRoute']);
resourceDemo.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl: '/partials/index.html',
controller: 'MainCtrl'
})
.when('/posts/:postid', {
templateUrl: '/partials/detail.html',
controller: 'DetailCtrl',
resolve: {
post: function ($route, Post) {
return Post.get({ postid: $route.current.params.postid }).$promise;
}
}
})
.otherwise({
redirectTo: '/'
});
}]);
resourceDemo.factory('Post', function ($cacheFactory, $resource) {
var Post = $resource('/posts/:postid', {}, {
get: { cache: true, method: 'get'}
});
return Post;
});
resourceDemo.controller('MainCtrl', function ($scope, Post) {
$scope.posts = Post.query();
});
resourceDemo.controller('DetailCtrl', function ($scope, post, Post) {
$scope.post = post;
});
<!DOCTYPE html>
<html lang="en" ng-app="resourceDemo">
<head>
<base href="/">
<meta charset="UTF-8">
<title>Resource</title>
</head>
<body>
<h1>Resource demo</h1>
<div ng-view></div>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="src/app.js"></script>
</body>
</html>
资源
资源演示