我需要在AngularJS上创建一个巨大的页面。而且我在想这个页面哪个架构更好?因此,页面有3个具有很多功能的块,但主要是:左侧块有帐户,用户可以选择一些帐户,此帐户应显示在中心块上。可以更改中心块,结果应显示在右侧块上。 对于html,我为每个块创建了3个视图,并将它们包含在ng-include中。此外,我想以某种方式划分控制器的几个文件,因为我没有在一个文件中使用大量代码。我看到了一些方法,如何做到这一点。 1.为每个视图创建控制器,并通过广播传输数据,或在RootScope上保存数据并使用观察者。 2.创建父控制器并由他传输数据。 你怎么看待这件事?或者也许一个大控制器是最好的解决方案?通过控制器传输数据的最佳方法是什么?感谢。
答案 0 :(得分:0)
你的情况有很多方法,我会告诉你我认为最好的方法
首先,你创建一个父抽象状态,你可以在其中完成所有脏工作,无论是从服务器获取数据还是其他方式,注入你需要在$scope
中使用的所有数据然后去孩子状态“你的大页面在哪里”
类似的东西:
.state('parent_state', {
url: '/home',
abstract: true,
templateUrl: 'whatever',
controller: 'yourCtrl as yourCtrl'
})
.state("parent_state.child",{
//Whatever you need here
})
当你进入孩子状态时,你将获得$scope
所需的所有数据,这样你就可以更专注于逻辑而不是包装数据
从我看来,一个页面应该只有一个控制器,如果给你的视图的每个部分一个控制器没有意义,否则你需要使用自定义指令
因此,如果你有一个控制器来统治它们,或者一个控制器和多个指令。
你的电话