[英]Mean Stack - Angular passing parameters from controller to $resource object
[英]MEAN stack Angular shows Object from Express but not HTML
我試圖建立一個Blog網站,但我堅持創建單個“發布”視圖頁面。 當我從href獲得/ post / id頁面時,一切正常,但是當我手動刷新頁面或共享鏈接時,我得到這樣的頁面:
{"_id":"56fa7443c1542bdc3bdb3857","user":{"_id":"56fa6b0cc83017643c50c5ad",
被這個問題困擾了幾天,我該如何解決?
快速代碼(./app/backend/routes/post.js)
router.get('/:id', function (req, res) {
Model.findById(req.params.id, function(err, post){
return res.status(200).send(post);
})
.populate('user');
});
Angular PostCtrl代碼(./app/frontend/js/controller/post.js)
$http.get('/post/'+$routeParams.id).success(function (post) {
post.text = $sce.trustAsHtml(post.text);
$scope.post = post;
}).error(function (error, status) {
$scope.errorMessage = error + ' (code:' + status + ')';
});
路由(./app/frontend/js/app.js)
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/post/:id', {
templateUrl: 'views/post.html',
controller: 'PostCtrl'
})
我把它修好了。 我不得不將Angular路由從.when('/post/:id'
更改為.when .when('/blog/:id'
,並將hrefs更改為/blog/:id
。
似乎角路由和快速路由不能相同。 Express似乎仍將數據發送到/post/:id
而angular從那里獲取數據並將其顯示到/blog/:id
。 刷新頁面后,一切似乎都可以正常工作了。 現在只需要在/post/:id
隱藏敏感數據,或者找到一種用戶可以訪問/post/:id
。
我正在嘗試理解您的代碼,這就是我能想到的
// this is how the route should be using populate
router.get('/post/:id', function (req, res) {
Model.findOne({_id: req.params.id}).populate('user').exec(function (error, post) {
if (post) {
res.status(200).json(post);
} else {
// handle error here...
}
})
});
其他的一切看起來還不錯。
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.