'controller' 的参数不是函数,未定义

Argument with 'controller' is not a function, got undefined

我发现了类似的问题,但没有得到解决方案,所以我 post 有一个问题。 我一直在 angular js 中实现和显示数据库中的数据,下面是 mu 代码。

index.php 文件:

<header>
<script type='text/javascript' src='local-path/js/angular.min.js?ver=4.9.5'></script>
<script type='text/javascript' src='local-path/js/angular-route.min.js?ver=4.9.5'></script>
<script type='text/javascript' src='local-path/js/scripts.js?ver=4.9.5'></script>
</header>

<div ng-controller="mycontrollermenu">
            First Name: {{firstname}}
            </div>

<div ng-view></div>

<footer></footer>

script.js:

var app = angular.module('wp',['ngRoute','  ']);
app.config(function($routeProvider, $locationProvider){
    $routeProvider  
    .when('/', {
        templateUrl : localized.partials + 'main.php',
        controller  :  'Main'
    })
    .when('/:slug', {
        templateUrl: localized.partials + 'content.html',
        controller: 'Content'
    })
    .otherwise({
        redirectTo: '/'
    });

    $locationProvider.html5Mode(true);
});

app.controller('Main',function($scope, $http, $routeParams){    
    $http.get('wp-json/wp/v2/posts/').success(function(res){                
        $scope.posts = res;     
    });

});

app.controller('Content',
        ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {                     
            $http.get('wp-json/wp/v2/posts/?slug=' + $routeParams.slug).success(function(res){                                                
                $scope.post = res[0];
            });
        }
    ]
);


app.filter('removeHTMLTags', function() {
    return function(text) {
        return  text ? String(text).replace(/<[^>]+>/gm, '') : '';
    };
});

app.controller('mycontrollermenu',function($scope){
    $scope.firstname = "Menu 1";        
});

我已将控制器 mycontrollermenu 添加到索引和 js 文件中,但该文件不起作用,并出现类似这样的错误 "Argument 'mycontrollermenu' is not a function, got undefined"

任何人都可以指导我在 "mycontrollermenu" 控制器中做错了什么吗?

几个问题,

  • ng-app 需要在根元素上。把你的 HTML 包装成 <div ng-app="wp">...<div>

  • localized是全局变量?它既没有注入也没有声明。

  • 模块定义中有一个空字符串。忘记包含依赖项?

    var app = angular.module('wp',['ngRoute',' ']);

Here 我有一个 fiddle 使用你的代码。

尝试像 MenuController.js 一样创建一个新的 .js 文件并添加相同的

app.controller('mycontrollermenu',function($scope){
$scope.firstname = "Menu 1";        
 });

并在您的 index.html 中添加 <script type='text/javascript' src='MenuController.js'></script>