Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 巨大页面的角度架构_Javascript_Angularjs_Architecture_Controller - Fatal编程技术网

Javascript 巨大页面的角度架构

Javascript 巨大页面的角度架构,javascript,angularjs,architecture,controller,Javascript,Angularjs,Architecture,Controller,我需要在AngularJS上创建一个巨大的页面。我在想哪种架构更适合这个页面?所以,页面有3个块,有很多功能,但主要是:左边的块有帐户,用户可以选择一些帐户,这个帐户应该显示在中间块上。可以更改中间块,结果应显示在右侧块上。 对于html,我为每个块创建了3个视图,并使用ng include将它们包括在内。此外,我还希望以某种方式将控制器划分为几个文件,因为我没有在一个文件中使用很多代码。我看到了一些方法,如何做到这一点。 1.为每个视图创建控制器,并通过广播传输数据,或在RootScope上保

我需要在AngularJS上创建一个巨大的页面。我在想哪种架构更适合这个页面?所以,页面有3个块,有很多功能,但主要是:左边的块有帐户,用户可以选择一些帐户,这个帐户应该显示在中间块上。可以更改中间块,结果应显示在右侧块上。 对于html,我为每个块创建了3个视图,并使用ng include将它们包括在内。此外,我还希望以某种方式将控制器划分为几个文件,因为我没有在一个文件中使用很多代码。我看到了一些方法,如何做到这一点。 1.为每个视图创建控制器,并通过广播传输数据,或在RootScope上保存数据并使用监视程序。 2.创建父控制器并由其传输数据。
你觉得这个怎么样?或者一个大型控制器是最好的解决方案?通过控制器传输数据的最佳方式是什么?谢谢。

针对您的情况有很多方法,我会告诉您我认为最好的方法

首先,创建一个父抽象状态,在该状态下,您可以在其中执行所有脏活,删除从服务器获取的数据或其他内容,注入所有需要在
$scope
中使用的数据,然后转到子状态“您的大页面所在位置”

诸如此类:

.state('parent_state', {
    url: '/home',
    abstract: true,
    templateUrl: 'whatever',
    controller: 'yourCtrl as yourCtrl'
  })
  .state("parent_state.child",{
    //Whatever you need here
  })
当您转到子状态时,您将在
$scope
中获得所需的所有数据,因此您可以将更多精力放在逻辑上,而不是包装数据

在我看来,一个页面应该只有一个控制器,如果为视图的每个部分都提供一个控制器是没有意义的,否则需要使用自定义指令

因此,如果您有一个控制器来控制所有这些指令,或者一个控制器和多个指令

你的电话