Javascript Angularjs使用同一控制器具有多个视图,并且只运行一次控制器?
现在我有两个独立的视图,我希望能够在一个控制器中控制它们 然而,目前,控制器运行了两次。是否可以将多个视图连接到同一个控制器,但控制器只运行一次 我知道我可能已经建立了一个工厂来共享$scope数据,但目标是不收集两次数据Javascript Angularjs使用同一控制器具有多个视图,并且只运行一次控制器?,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,现在我有两个独立的视图,我希望能够在一个控制器中控制它们 然而,目前,控制器运行了两次。是否可以将多个视图连接到同一个控制器,但控制器只运行一次 我知道我可能已经建立了一个工厂来共享$scope数据,但目标是不收集两次数据 .state('cloud', { url: '/cloud', views: { 'main': { templateUrl: 'main.html', controller: 'cloud' }, 'second': {
.state('cloud', {
url: '/cloud',
views: {
'main': { templateUrl: 'main.html', controller: 'cloud' },
'second': { templateUrl: 'second.html', controller: 'cloud' }
}
})
控制器get运行两次,因为在“云”状态中定义了两个视图,并且两个视图具有相同的控制器 因此,当两个视图都加载时,控制器调用两次
但是,如果要调用控制器,则必须为两个视图定义单独的控制器。或者使用每个控制器调用的服务(并在服务中缓存请求/数据)。或者在公共祖先元素上创建uber控制器(不推荐)