2017-04-05 14 views
0

こんにちは、これは私の最初のanglejsアプリであり、私はコントローラを注入する際に問題に直面しています。私はindex.htmlと呼ばれる1ページがあり、以下のように説明されています。引数のコントローラが関数ではありません、定義されていません

<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を選択して、私は引数RoslpAppControllerは関数ではありません取得提出をクリックするたびに、未定義のエラーが発生しました。このエラーを修正するためにいくつかの助けを得ることができますか?

ご協力いただければ幸いです。ありがとうございました。

答えて

0

コントローラをapp.configの外に移動します。

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

ありがとうございました。 –

+0

@NiranjanGodboleマークが回答した場合は – Sajeetharan

+0

小さな疑問も私はapp.runも右に移動する必要がありますか? –

関連する問題