繁体   English   中英

MEAN堆栈Angular显示Express中的对象,但不显示HTML

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM