我有一个自动完成的搜索栏(使用angularjs实施),它会显示学校列表,点击一个项目会将我带到一个ui-state /home/:id
。
但是,在搜索完成后填充学校数据时,页面会冻结。搜索栏不再起作用,页面也不会滚动。
目前我每次搜索都会重新加载页面。这使页面正常工作,但这绝对不是解决方案。
这是路由器代码:
.state('home.search', {
url: '/search',
templateUrl: 'views/home/home.html',
data : { title: 'Home', theme: { primary: 'grey-50', folded: 'true'} },
resolve: load('views/home/home.js'),
})
.state('home.detail', {
url: '/{id}',
templateUrl: 'views/home/detail.html',
data : { title: 'Home', theme: { primary: 'grey-50', folded: 'true'} },
resolve: load('views/home/home.js'),
})
这是控制器代码:
function selectedItemChange(item) {
$log.info('Item changed to ' + JSON.stringify(item));
window.location.reload();
self.selectedSchool = item;
$state.transitionTo('home.detail', {id: item.schoolCode}, $stateParams, {
reload: true, inherit: false, notify: true
});
}
控制器代码:window.location.reload();
使代码有效。但这不是解决方案。如果我删除该代码,页面将填充新的学校数据,但它会完全冻结。任何人都能说明为什么会这样吗?这是什么解决方案?