【发布时间】:2015-04-22 06:02:18
【问题描述】:
我正在尝试使用 meanjs 构建一个简单的应用程序。我有 2 个模块:标准用户模块和帖子模块。我想要实现的是一个用户个人资料页面,它将显示有关特定用户的一些信息并列出属于该用户的帖子。您可以将其视为 Twitter 个人资料页面。我认为这也是最好的 /users/username 形 url 结构。但我对这一切都很陌生,现在卡住了。这是我到目前为止所做的:
我将这些行添加到 users.server.routes.js 中:
app.route('/api/users/:userName').get(users.userByUsername);
app.param('userName', users.userByUsername);
向服务器控件添加一个函数,如下所示:
exports.userByUsername = function(req, res, next, username) {
User.findOne({
username: username
}).exec(function(err, user) {
if (err) return next(err);
if (!user) return next(new Error('Failed to load User ' + username));
req.profile = user;
next();
});
};
我将此部分添加到 users.client.routes.js
state('view.profile', {
url: '/users/:username',
templateUrl: 'modules/users/views/view-profile.client.view.html'
});
我创建了一个这样的新视图:
<section class="row" data-ng-controller="ViewProfileController" ng-init="findUser()">
<div class="col-xs-offset-1 col-xs-10 col-md-offset-4 col-md-4">
...
</div>
</section>
最后我创建了一个新的客户端控制器:
angular.module('users').controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication',
function($scope, $http, $location, Users, Authentication, $stateParams) {
$scope.user = Authentication.user;
$scope.findUser = function () {
$scope.ourUser = Users.get({
username: $stateParams.username
});
};
}
]);
当我尝试为任何用户名打开用户/用户名页面时,它只会将主主页提供给我。任何想法有什么问题或缺少什么?提前致谢。
【问题讨论】:
-
不应该是 /users/...(在各州指定复数)
-
@manube 是的,实际上是这样。顺便说一句,结果是一样的。
-
当你在浏览器的地址栏中输入/api/users/userName,你得到正确的json了吗?
-
不,它也将我带到标准主页。
-
嗯,那有一个快递问题先解决,很高兴知道
标签: javascript angularjs node.js meanjs