我正在寻找Angularjs中使用$ stateParams的查询支持。查询返回undefined。
我在新闻Feed中有一系列照片。点击照片会带您进入该照片的新页面。我在下面尝试首先在网络谷歌开发工具标签中吐出照片ID。
环境:angularjs,javascript解析api 使用promises / factory / controller / view
路线
.state(‘gallery.item', {
url: '/item/:galleryid',
views: {
menuContent: {
controller: 'ItemController as vm',
templateUrl: path + ‘/galleryitem/item.html'
}
}
})
工厂 - 解析查询
function getFirst(Class, term1, term2){
var defer = $q.defer();
var ParseString = Parse.Object.extend(Class);
var query = new Parse.Query(ParseString);
query.equalTo(term1, term2);
if(Class==='Gallery') {
query.equalTo('approve', true);
query.ascending('createdAt');
}
query
.first()
.then(function(resp){
console.log('getFirst', resp);
if (resp === undefined) {
defer.reject(resp);
} else {
defer.resolve(resp);
}
});
return defer.promise;
}
return {
getFirst: getFirst
}
ItemController
function ItemController($scope, $state, $rootScope, $stateParams, Factory) {
var vm = this;
getItemDetails();
function getItemDetails() {
vm.Gallery = [];
Factory
.getFirst('Gallery', 'objectId', $stateParams.id)
.then(function(resp) {
vm.GalleryData = response;
console.log(resp);
vm.Gallery.push({
id: resp.id,
});
});
非常感谢任何帮助。
由于
卡梅伦
答案 0 :(得分:0)
在您的路由配置中,您使用url: '/item/:galleryid',
,但在控制器中,您正在寻找与路由配置不匹配的$stateParams.id
更改为$stateParams.galleryid