Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 - Fatal编程技术网

Javascript 跨作用域的控制器作用域

Javascript 跨作用域的控制器作用域,javascript,angularjs,Javascript,Angularjs,我有这个html结构 <div kendo-splitter k-orientation="'horizontal'" k-panes='[{ collapsible: true, size: "15%" } , { collapsible: false } , { collapsi

我有这个html结构

 <div kendo-splitter k-orientation="'horizontal'" k-panes='[{ collapsible: true, size: "15%" }
                                                    , { collapsible: false }
                                                    , { collapsible: true, size: "15%" }]' style="position: absolute; top: 5%; left: 0%; height: 80%; width: 100%">
            <div>Incident</div>
            <div ng-controller="layoutController">
                Video
                <nv-layout id="nv-layout" layout-entries="layoutEntries" on-selected="onSlotSelected" on-resize="onLayoutResized"></nv-layout>
            </div>
            <div>Sensors</div>
        </div>
nv布局指令定义为

 var directive = {
        link: link,
        restrict: 'EA',
        scope: {
            layoutEntries: "=",
            selected: "&onSelected",
            resized: "&onResized"
        },
        template: "<div></div>"
    };

我想将控制器放在splitter div中,以便它能够侦听调整大小事件,无论何时我这样做,layoutEntries绑定断开,我可以添加控制器的位置是否有限制?

当您坚持自定义指令时,Angular是最简单的。如果你愿意,我可以举个例子

要回答您的问题,我可以添加控制器的位置是否有限制

是的,它必须在您希望控制的代码之上。在您的示例中,在控制器的上方和下方都有角度代码。但是,您可以嵌套控制器。类似于

<div ng-controller="MainCtrl">
  <div kendo-splitter k-orientation="'horizontal'" k-panes='[{ collapsible: true, size: "15%" }
                                                , { collapsible: false }
                                                , { collapsible: true, size: "15%" }]' style="position: absolute; top: 5%; left: 0%; height: 80%; width: 100%">
        <div>Incident</div>
        <div ng-controller="layoutController">
            Video
            <nv-layout id="nv-layout" layout-entries="layoutEntries" on-selected="onSlotSelected" on-resize="onLayoutResized"></nv-layout>
        </div>
        <div>Sensors</div>
    </div>
</div>
另外,您可能希望遵循Angularjs样式指南,并在UpderCamelCase中标记控制器

以下是一个链接:

app.controller('MainCtrl',function($scope){
  $scope.blah = 'blah'
});

app.controller('layoutController',function($scope){
  $scope.blah = 'blah'
});