我有一个网页,有不同的documents.php,每个文件都有ng-app和一些控制器。 (我的网页很容易发现)。
player.php:(用户可以使用音频播放器播放音乐)
<div class="navbar-fixed" ng-controller="menuController as menu2">
<?php include('includes/menu.php'); ?>
</div>
<div ng-controller="InteractiveController as interactCtrl">
//some code
</div>
panel_admin.php:(用户可以修改其数据和网页的部分数据)
<div class="navbar-fixed" ng-controller="menuController as menu2">
<?php include('includes/menu.php'); ?>
</div>
<div ng-controller="AdminController as AdminCtrl">
//some code
</div>
player.php和panel_admin.php各自的 player.js和panel_admin.js 及其.controllers。
player.js:
var decibelsInteractive = angular.module("decibels-interactive", []);
decibelsInteractive.controller('InteractiveController', function ($scope, $log) {
panel_admin.js:
var adminControl = angular.module("decibels-admin", []);
adminControl.controller("AdminController", function($scope){
现在,我在menu.php中有菜单栏,我在 player.php 和 panel_admin.php 文档中使用。我导入它是因为我不想在每个需要使用菜单的页面中重复代码(menu.php有管理用户选项,注销等许多选项......)。我还创建了一个 menu.js ,只在一个文档中包含特定方法,而不是在25个文档中。
menu.php:(菜单是一个菜单栏,用户有一些选项,还有用户名和退出选项)
//this document only contains some html code
现在,我已尝试实施一个简单的代码(在 menu.js 中),这样我就可以在有多个ng-app时共享一个控制器。
Question with the code I've taken
menu.js:
angular.module('decibels-interactive', ['shared']); //player2.php
angular.module('decibels-admin', ['shared']); //panel_admin.php
var sharedModule=angular.module('shared',[]);
sharedModule.controller('menuController',['$scope',function($scope) {
alert("menuController");
}]);
});
这很有效!!!但是,angular显示错误...(加载player.php)
错误:[ng:areq] http://errors.angularjs.org/1.2.25/ng/areq?p0=InteractiveController&p1=not%20a%20function%2C%20got%20undefined
当我加载panel_admin时,再次出现相同的错误,但是使用AdminController ...
似乎角度只检测每个.php中的第一个控制器,而无法找到第二个控制器。
我做错了什么?
谢谢!
答案 0 :(得分:0)
您可以为共享代码创建一个文件,并在其中包含控制器代码。
// @file mySharedCode.js
var MySharedCode = MySharedCode || {};
MySharedCode.menuController = function($scope) {
// controller logic
};
然后,在你的app.js文件中调用menuController
函数
// @file app.js
sharedModule.controller('menuController', MySharedCode.menuController);
希望这是有道理的。