Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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 ng中的Angularjs控制器包括_Javascript_Angularjs_Angularjs Controller - Fatal编程技术网

Javascript ng中的Angularjs控制器包括

Javascript ng中的Angularjs控制器包括,javascript,angularjs,angularjs-controller,Javascript,Angularjs,Angularjs Controller,我有一个包含项目和文章的博客系统 人们可以写文章,并在他们的项目中发挥作用 我的angular应用程序使用通用归档视图来显示任何元素,但它使用基于要显示的元素的自定义控制器。例如,我使用projectsArchiveController“更正”api数据(第一行是标题,第二行是说明),或者articleArchiveController(第一行是标题,第二行是摘录) 一切正常 现在,我尝试在一系列选项卡中显示person profile视图的元素。我想要一个项目标签,一个文章标签,等等。。(还有

我有一个包含项目和文章的博客系统

人们可以写文章,并在他们的项目中发挥作用

我的angular应用程序使用通用归档视图来显示任何元素,但它使用基于要显示的元素的自定义控制器。例如,我使用projectsArchiveController“更正”api数据(第一行是标题,第二行是说明),或者articleArchiveController(第一行是标题,第二行是摘录)

一切正常

现在,我尝试在一系列选项卡中显示person profile视图的元素。我想要一个项目标签,一个文章标签,等等。。(还有其他因素)

因此,在personProfileController中,我创建了一个简单的类似数组的对象:

        [
            {
                title: 'Projects',
                slug: 'projects',
                items: vm.projects,
                controller: "ProjectsArchiveController"
            },{
                title: 'News',
                slug: 'news',
                items: vm.news,
                controller: "NewsArchiveController"
            },{
                title: 'Insights',
                slug: 'insights',
                items: vm.insights,
                controller: "InsightsArchiveController"
            }
        ];
因此,在我看来,我只是简单地用ng repeat迭代这个对象,并使用正确的控制器包含归档模板

    <tabset>
        <tab ng-repeat="tab in vm.tabs" heading="{{ tab.title }}" active="tab.active">
            <div ng-controller="tab.controller" ng-include="'views/archive.html'">
            </div>
        </tab>
    </tabset>
但它也不起作用。 我在某个地方读到,我必须使用
projectsController.constructor
,所以我也尝试过,但在这种情况下,它说它找不到“itemsProvider”,尽管我正在用$controller语法向他提供项

我写了这样一段话来实现它:

{
    title: 'Projects',
    slug: 'projects',
    items: vm.projects,
    controller: function(){return projectsController}
}

但是它破坏了范围层次结构,并且没有正确触发事件,所以我不知道还能做什么。有什么帮助吗?

使用像ui这样的路由器怎么样。路由器:


为什么不制作一个显示内容的指令?一个包含整个模板的指令?嗯,这可能行得通,我更关注控制器的动态包含,因为我认为它比指令更容易阅读。指令很棒,而且是自包含的。您甚至可以使用一个模板参数,并使指令动态加载模板,以防每个列表项发生更改。我在最近的一个项目中这样做了,它就像一个符咒:)但是我如何动态加载它的控制器呢?每个指令都有它自己的控制器。你的控制器有什么不同?也看看这个:嗯,你知道吗,这不是个坏主意。我只是不希望URL改变。
{
    title: 'Projects',
    slug: 'projects',
    items: vm.projects,
    controller: function(){return projectsController}
}
myApp.config(function($stateProvider) {
    $stateProvider
        .state('projects', {
            url: "/projects",
            templateUrl: "partials/projects.html"
            controller: 'ProjectsController'
        });   
}); //etc.