我有一个问题,从地址栏导航到状态或当我刷新当前状态。 我有以下代码:我无法导航到状态UI路由器从地址栏
控制器:
$scope.selectCategory = function(category) {
$location.path('/posts/' +category.category);
$scope.posts=[];
Post.query({category: category.id}).$promise.then(function(posts){
$scope.category = $stateParams.category;
$scope.posts = posts;
$scope.sortBy = "-updated";
$scope.letterLimit = 100;
$scope.postDisplayed = 6;
function setCurrentPost(post) {
$scope.currentPost = post;
}
$scope.setCurrentPost = setCurrentPost;
});
}
所以在代码上面,我结合我的职位,范围类,当用户点击一个特定的类别,他将被定向到呈现该特定类别的帖子的页面。
我打电话状态路由器的网址如下:
app.js:
.state('posts.category', {
url: '/:category',
templateUrl: 'static/partials/post/postlist.html',
})
那么用户必须点击一个特定的类别被定向到该网址。我用ng-click来实现在我的html中:
<img ng-click="selectCategory(category)" ng-src="[[category.image]]" err-src="../../../static/img/imageholder.png" alt="img01"/>
我正在使用资源查询从api调用帖子,如下所示。
服务:
.factory('Post', ['$resource', function($resource){
return $resource('/api/posts/:category', {category:'@category'});
}])
终于在渲染的帖子的页面,我通过使用职位NG-重复循环如下:
<div ng-repeat="post in posts | limitTo:postDisplayed | filter: searchText | orderBy: sortBy" >
到目前为止evrything工作正常。当用户点击一个特定的类别时,它会被引导到正确的页面并呈现帖子。
我的问题,如果用户刷新页面或尝试通过在地址栏中输入url访问该页面,或者我发送了url链接给某人并点击它,页面呈现为空白,这意味着范围函数selectCategory根本不被调用。换句话说,我的函数selectCategory只能通过ng-click调用,否则根本不会通过状态路由器调用。任何想法如何解决这个问题?提前致谢。
如果从父状态控制器调用该方法(父状态可能是'posts'),您能显示'selectCategory'方法的代码并提供信息吗? – eminlala
@ ex0dm3nt感谢您的回复。下面是父状态的信息: .STATE( '职位',{ 网址: '/帖', 摘要:真实, templateUrl: '静态/谐音/后/ mainpost.html', }) 码对于selectCategory,在控制器部分中已经提到。让我知道是否需要其他任何东西。谢谢 – Hamid
你有'posts.category'状态的单独控制器吗?你如何在模板中显示数据?通过在声明'selectCategory'方法时使用该控制器? – eminlala