次のコードがあります。
var app =
angular.
module("myApp",[]).
config(function($routeProvider, $locationProvider) {
$routeProvider.when('/someplace', {
templateUrl: 'sometemplate.html',
controller: SomeControl
});
// configure html5 to get links working on jsfiddle
$locationProvider.html5Mode(true);
});
app.controller('SomeControl', ...);
次のエラーが表示されます
Uncaught ReferenceError: SomeControl is not defined from myApp
問題は、app.controller( 'SomeControl'、...)構文を使用できないということだけですか? $ routeProviderを使用する場合唯一の機能する構文は次のとおりです。
function SomeControl(...)
引用符を使用:
controller: 'SomeControl'
Foo Lが言ったように、SomeControl
を引用符で囲む必要があります。引用符を使用しない場合、変数SomeControl
を参照しています。これは、コントローラーを表すために名前付き関数を使用しなかったため未定義です。
言及した代替function SomeControl(...)
を使用する場合、その名前付き関数を定義します。そうでない場合、Angularは、myApp
モジュールでコントローラーを検索する必要があることを知る必要があります。
app.controller('SomeControl', ...)
構文を使用すると、グローバル名前空間を汚染しないため、より適切です。
上記の答えは正しいですが、このエラーも発生する可能性があります。
_<div ng-controller="yourControllerName as vm">
_
angular.module('smart.admin.vip') .controller('yourController', yourController); function yourController($scope, gridSelections, gridCreationService, adminVipService) { var vm = this; activate();