我刚刚开始使用MEANJS。我正在修改样本文章模块。
查看findOne()的代码,它似乎查询db然后返回它并分配给$scope.article
。
// Find existing Article
$scope.findOne = function() {
$scope.article = Articles.get({
articleId: $stateParams.articleId
});
};
我希望它能像重定向一样,或者如果它什么都不返回则显示404。也许是因为网址上有拼写错误。我开始通过故意在URL上输入错误的ID来测试看看是什么类型的结果。
结果
当ID很糟糕时,在控制台中,我会看到“找到的东西”,然后是“未定义”,然后是400“错误请求”错误。
// Find existing Article
$scope.findOne = function() {
$scope.article = Articles.get({
articleId: $stateParams.articleId
});
if ($scope.article) {
console.log('found something');
console.log($scope.article._id);
}
else {
console.log('found NOTHING');
}
};
底线是,如何检查我是否真的得到了什么?
答案 0 :(得分:2)
由于 Articles.get()
函数是异步的,因此它应返回 $promise
对象,然后您可以检查返回的对象。这样的事情应该有效:
var self = this;
Articles.get({
articleId: $stateParams.articleId
}).$promise.then(function(data){
if (data) {
console.log('found something');
console.log(data.article._id);
self.article = data.article;
}
else {
console.log('found NOTHING');
});