我在整个网站上都激活了AngularJS材料。我在每个页面上都有控制器定义块,并根据每个页面的必要性填充控制器:
<script type="text/javascript">
app.controller('myCtrl', function($scope, $http, $mdSidenav, $mdDialog, $anyPageSpecificDependency) {
//Page-specific functions and values
});
</script>
我有一个sidenav切换功能,需要在每个页面上使用。不必在每个页面的控制器中手动定义sidenav切换功能,我想将其添加到底部包含PHP文件的一段代码中,尽管我不知道该怎么做。另外,我需要切换功能来处理$mdSidenav
依赖性,这是主控制器的一部分。
我希望能够做到以下几点:
<script type="text/javascript">
app.controller('myCtrl', function($scope, $http, $mdSidenav, $mdDialog, $anyPageSpecificDependency) {
//Page-specific functions and values
});
</script>
//The following is imported from an include file
<script type="text/javascript">
app.controller('myCtrl', function($scope, $mdSidenav) {
$scope.toggleSidenav = function() {
$mdSidenav('sidenav').toggle();
};
});
</script>
尽管我不能这样做,因为当我第二次定义控制器时,它将完全替换第一个控制器。
什么是最好的解决方案?
谢谢!
答案 0 :(得分:0)
我的建议似乎有用,因此在这里作为答案:
您可以利用模块声明中可用的run()方法来连接$rootScope
上的属性(例如,边栏切换调用)。这些属性将在您定义的每个控制器范围内可用,因此无需进行任何进一步的显式绑定。