Angularjs 控制器显示未定义?
Angularjs controller is showing undefined?
我正在使用 angularjs 和 cassandra 开发节点应用程序。
当我转到诸如注册页面之类的页面时,前端会正确出现,但它显示控制器未定义的错误。
错误:error:areq
错误的论点
这是app.js(主js配置文件)
angular.module('app', ['ui.router'])
.config(['$urlRouterProvider', '$stateProvider',
function($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: '/browser/views/home.html'
})
.state('register', {
url: '/register',
templateUrl: '/browser/views/register.html',
controller: 'RegisterCtrl'
})
.state('login', {
url: '/login',
templateUrl: '/browser/views/login.html',
controller: 'LoginCtrl'
})
}
]);
这是 register.html 文件,后跟控制器的路径。
<div ng-controller="RegisterCtrl" class="container-fluid">
<div class="row custom-row2">
<div class="col-md-6 col-lg-6 col-sm-6">
<h4 class="sign_up">{{ title }}</h4>
<form class="form-horizontal" id="login_form" name="login_form" role="form">
<div class="form-group">
<label class="control-label col-sm-3" for="name">Name:</label>
<div class="col-sm-9">
<input ng-model="name" type="text" class="form-control" name="field1" id="name" aria-describedby="inputSuccess3Status" placeholder="Enter Your Name....">
</div>
</div>
</form>
</div>
</div>
这是 registerCtrl.js 文件,即将在 firebug 中检查
angular.module('app', ['ui.router'])
.controller('RegisterCtrl', ['$scope',
function($scope, RegiserService) {
$scope.title = "Sign Up";
}
]);
但是必须来自 registerCtrl 控制器的 title 不会出现,而 {{ title }} 会出现在那个地方。
我已经经历了好几次了,但是没能弄清楚定义控制器时出了什么问题。
您正在通过执行 angular.module('app', ['ui.router']).controller.
重新创建模块 只需使用 getter 语法 angular.module('app')
在创建应用程序后获取模块。我假设您在注册服务 RegiserService
时也在做同样的事情,该服务会清除注册到同一模块 app
的所有其他内容。使用语法 angular.module('moduleName', [..dep])
创建模块后,您应该在注册任何其他后续实体时使用 getter 语法 angular.module('app')
获取模块。
模块创建(仅一次):
angular.module(moduleName, [requires], [configFn]);
模块Getter(访问已经创建的模块):
angular.module(moduleName);
When passed two or more arguments, a new module is created. If passed only one argument, an existing module (the name passed as the first argument to module) is retrieved.
例如:-
angular.module('app').controller('RegisterCtrl',...
angular.module('app').service('RegiserService',...
随着 PSL 提到的重新定义模块,
还有一点就是——什么是RegiserService
?如果它是某种服务,那么控制器的定义是错误的。
正确的定义是
angular.module('app', ['ui.router'])
.controller('RegisterCtrl', ['$scope', 'RegiserService',
function($scope, RegiserService) {
$scope.title = "Sign Up";
}
]);
我正在使用 angularjs 和 cassandra 开发节点应用程序。 当我转到诸如注册页面之类的页面时,前端会正确出现,但它显示控制器未定义的错误。 错误:error:areq 错误的论点
这是app.js(主js配置文件)
angular.module('app', ['ui.router'])
.config(['$urlRouterProvider', '$stateProvider',
function($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise('/');
$stateProvider
.state('home', {
url: '/',
templateUrl: '/browser/views/home.html'
})
.state('register', {
url: '/register',
templateUrl: '/browser/views/register.html',
controller: 'RegisterCtrl'
})
.state('login', {
url: '/login',
templateUrl: '/browser/views/login.html',
controller: 'LoginCtrl'
})
}
]);
这是 register.html 文件,后跟控制器的路径。
<div ng-controller="RegisterCtrl" class="container-fluid">
<div class="row custom-row2">
<div class="col-md-6 col-lg-6 col-sm-6">
<h4 class="sign_up">{{ title }}</h4>
<form class="form-horizontal" id="login_form" name="login_form" role="form">
<div class="form-group">
<label class="control-label col-sm-3" for="name">Name:</label>
<div class="col-sm-9">
<input ng-model="name" type="text" class="form-control" name="field1" id="name" aria-describedby="inputSuccess3Status" placeholder="Enter Your Name....">
</div>
</div>
</form>
</div>
</div>
这是 registerCtrl.js 文件,即将在 firebug 中检查
angular.module('app', ['ui.router'])
.controller('RegisterCtrl', ['$scope',
function($scope, RegiserService) {
$scope.title = "Sign Up";
}
]);
但是必须来自 registerCtrl 控制器的 title 不会出现,而 {{ title }} 会出现在那个地方。
我已经经历了好几次了,但是没能弄清楚定义控制器时出了什么问题。
您正在通过执行 angular.module('app', ['ui.router']).controller.
重新创建模块 只需使用 getter 语法 angular.module('app')
在创建应用程序后获取模块。我假设您在注册服务 RegiserService
时也在做同样的事情,该服务会清除注册到同一模块 app
的所有其他内容。使用语法 angular.module('moduleName', [..dep])
创建模块后,您应该在注册任何其他后续实体时使用 getter 语法 angular.module('app')
获取模块。
模块创建(仅一次):
angular.module(moduleName, [requires], [configFn]);
模块Getter(访问已经创建的模块):
angular.module(moduleName);
When passed two or more arguments, a new module is created. If passed only one argument, an existing module (the name passed as the first argument to module) is retrieved.
例如:-
angular.module('app').controller('RegisterCtrl',...
angular.module('app').service('RegiserService',...
随着 PSL 提到的重新定义模块,
还有一点就是——什么是RegiserService
?如果它是某种服务,那么控制器的定义是错误的。
正确的定义是
angular.module('app', ['ui.router'])
.controller('RegisterCtrl', ['$scope', 'RegiserService',
function($scope, RegiserService) {
$scope.title = "Sign Up";
}
]);