我正在使用angularjs和cassandra处理节点应用程序。 当我转到页面,如注册页面,然后前端正在适当,但它显示控制器未定义的错误。 错误:错误: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>
这是在firebug中检查的registerCtrl.js文件
angular.module('app', ['ui.router'])
.controller('RegisterCtrl', ['$scope',
function($scope, RegiserService) {
$scope.title = "Sign Up";
}
]);
但必须来自registerCtrl控制器的标题未来, {{title}} 即将到来。
我已经多次通过这个但是没有能够解决定义控制器的问题。
答案 0 :(得分:3)
您正在通过执行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);
传递两个或多个参数时,会创建一个新模块。如果只传递一个参数,则检索现有模块(作为模块的第一个参数传递的名称)。
例如: -
angular.module('app').controller('RegisterCtrl',...
angular.module('app').service('RegiserService',...
答案 1 :(得分:1)
随着PSL提到的重新定义模块,
还有一点是 - RegiserService
是什么?如果它是某种服务,那么控制器的定义是错误的。
正确的定义是
angular.module('app', ['ui.router'])
.controller('RegisterCtrl', ['$scope', 'RegiserService',
function($scope, RegiserService) {
$scope.title = "Sign Up";
}
]);