我已使用ui-router
使用以下$state
配置来设置多视图应用程序:
$stateProvider
.state({
url: "/scatterplots",
name: "scatterplots",
views: {
setup:{
component: "scatterplotsAction"
},
results:{
component: "scatterplotsResults"
}
}
});
最初,在setup
视图(位于手风琴引导程序组件内)中,我正在加载一堆控件元素和一个按钮,而结果视图(位于不同手风琴组件中)为空。我想做的是运行一个函数,当用户从results
视图中单击按钮时,就会在setup
视图内创建一个散点图。
到目前为止,我设法做到的是使用service
,当单击按钮时,它会使用$broadcast
发出特定事件。 results
视图的控制器捕获此事件时,将触发其特定功能。
例如在设置视图控制器中,我正在运行:
userService.triggerResultsPanel();
在结果控制器中:
userService.subscribe($scope, function eventOccured(event, data) {
if ( event.name === "open-results") {
buildScatterplot();
}
});
该解决方案似乎可以工作,并且还可以发送数据。但是我想知道是否还有其他更有效和棱角分明的方法来做到这一点。
说实话,我也尝试了此post中所说的内容,但并未真正起作用。可能是因为我正在使用components
。
欢迎提出任何想法。