'控制器'的参数不是函数,未定义

时间:2018-04-16 13:07:39

标签: angularjs angularjs-scope

我发现了类似的问题,但没有得到解决方案,所以我发布了一个问题。 我一直在角度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添加到index和js文件中,这个文件无法正常工作,并且会出现错误信息     “参数'mycontrollermenu'不是函数,未定义”

任何人都可以指导我在“mycontrollermenu”控制器中出错吗?

2 个答案:

答案 0 :(得分:1)

尝试创建新的.js文件,例如MenuController.js并添加相同的

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

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

答案 1 :(得分:0)

有几个问题,

  • f(1), f(2), f(3)需要在根元素上。像ng-app

  • 一样包装您的HTML
  • <div ng-app="wp">...<div>是一个全局变量?它既没有注射也没有声明。

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

    localized

Here我有一个使用你的代码的小提琴。