无法修复Argument Controller不是一个函数,未定义

时间:2017-04-05 05:31:49

标签: javascript angularjs

嗨这是我的第一个angularjs应用程序,我在注入控制器时面临问题。我有一个名为index.html的页面,如下所示。

<body ng-app="RoslpApp">
    <div ng-controller="RoslpAppController">
        <div class="popup">
            <label>Language</label>
            <select ng-model="selectedItem">
                <option>العربية</option>
                <option>English</option>
            </select>
            <button ng-click="clickHandler(selectedItem)">Submit</button>
        </div>
    </div>
</body>

这是我的js文件。

var app = angular.module('RoslpApp', ['pascalprecht.translate', 'ui.router']);
app.config(function ($stateProvider, $urlRouterProvider, $urlRouterProvider, $translateProvider, $translatePartialLoaderProvider) {

    $stateProvider
           // HOME STATES AND NESTED VIEWS ========================================
           .state('Registration', {
               url: '/Registration',
               templateUrl: 'Registration/Registration.html'
           });
    $translatePartialLoaderProvider.addPart('Main');
    $translateProvider.useLoader('$translatePartialLoader', {
        urlTemplate: "Scripts/Locales/{part}/{lang}.json"
    });
    $translateProvider.preferredLanguage('en_US');
    app.run(function ($rootScope, $translate) {
        $rootScope.$on('$translatePartialLoaderStructureChanged', function () {
            $translate.refresh();
        });
    });
    app.controller('RoslpAppController', ['$scope', '$translate', function ($scope, $translate) {
        $scope.clickHandler = function (key) {
            $translate.use(key);
        };
    }]);
});

每当我从下拉列表中选择langualge并单击提交时,我会得到Argument RoslpAppController不是函数,得到了未定义的错误。我可以帮助解决这个错误吗?

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

将控制器移到app.config外面。

app.controller('RoslpAppController', ['$scope', '$translate', function ($scope, $translate) {
    $scope.clickHandler = function (key) {
        $translate.use(key);
    };
}]);