, , , . , , . . .
URL .../user/username, users.server.route.js.
app.route('/api/users/:username').get(users.read);
app.param('username', users.userByUsername);
userByUsername users.profile.server.controller.js:
exports.userByUsername = function(req, res, next, username) {
User.findOne({
username: username
}, '_id displayName username created profileImageURL tagLine').exec(function(err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load User ' + username));
req.user = user;
next();
});
};
tagLine, . . . , , .. . , .
, .../api/users/username , json. , , . - .
posts.server.routes.js:
app.route('/api/posts/of/:userid').get(posts.listOf);
... posts.server.controller.js:
exports.listOf = function(req, res) { Post.find( { user: req.params.userid }).sort('-created').exec(function(err, posts) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.jsonp(posts);
}
});
};
, .../api/posts/of/userid , json .
, REST.
users.client.routes.js :
state('users', {
url: '/users/:username',
templateUrl: 'modules/users/views/view-profile.client.view.html'
});
URL- html , . client/views:
<div class="col-md-12" data-ng-controller="ViewProfileController" data-ng-init="findUser()">
...
{{ ourUser }}
<hr />
{{ userPosts }}
....
. . , ViewProfileController. findUser . :
'use strict';
angular.module('users').controller('ViewProfileController', ['$scope', '$http', '$location', 'Users', 'Authentication', '$stateParams',
function($scope, $http, $location, Users, Authentication, $stateParams) {
$scope.user = Authentication.user;
$scope.findUser = function () {
$scope.ourUser = Users.get({
username: $stateParams.username
}).$promise.then( function(ourUser) {
var userPostsPromise = $http.get('api/posts/of/' + ourUser._id);
userPostsPromise.success(function(data) {
$scope.userPosts=data;
$scope.ourUser=ourUser;
});
userPostsPromise.error(function() {
alert('Something wrong!');
});
}
);
};
}
]);
angular . , AJAX, . , .. , .
. , view-profile.client.view . ourUser userPosts . URL- : .../users/username.
, .