当我使用没有控制器的路由器时,我的路由器工作正常但是当我在其中添加控制器时。然后我的路由器停止工作......任何人都可以告诉我有关路由器功能的问题吗?
登录控制器:
angular.module('starter', ['ionic'])
.controller('LoginCtrl', function($scope, LoginService, $ionicPopup, $state) {
$scope.login = function() {
console.log("LOGIN user: " + $scope.username + " - PW: " + $scope.password);
LoginService.loginUser($scope.username, $scope.password).success(function(data) {
console.log("Login Successful");
$state.go('home');
}).error(function(data) {
var alertPopup = $ionicPopup.alert({
title: 'Login failed!',
template: 'Please check your credentials!'
})
})
}
});
ROUTERS CODE
angular.module('starter', ['ionic'])
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'page2.html',
controller: 'HomeCtrl'
})
.state('login', {
url: '/login',
templateUrl: 'index.html',
controller: 'LoginCtrl'
})
$urlRouterProvider.otherwise('/login');
});
答案 0 :(得分:3)
您的控制器被错误地声明了。在创建控制器时从模块中卸下进样器。像
这样的东西angular.module('starter')
.controller('LoginCtrl', function($scope, LoginService, $ionicPopup, $state) {
//...
});
由于这些原因,最好将模块创建在单独的文件中。所以你会有
<强> module.js 强>
angular.module('starter', ['ionic'])
<强> config.js 强>
angular.module('starter').config(function(){});
<强> controller.js 强>
angular.module('starter').controller('', function(){});
答案 1 :(得分:0)
angular.module('starter', ['ionic']) ,
此代码创建名为 starter 的角度应用的实例。你应该只创建一次应用程序实例。但你在这里创造了两次。
仅使用
angular.module('starter')
在声明控制器或配置时使用该应用程序。但是你应该小心,首先创建实例然后使用它。 这意味着
angular.module('starter', ['ionic'])
应该在首先执行的部分中使用。
答案 2 :(得分:0)
angular.module('starter', ['ionic'])
和
angular.module('starter')
是两个完全不同的概念。而[]
将方法转换为setter方法。含义它将创建一个新的启动器模块实例。但是如果你不使用第三个括号,那么它就变成了一个getter方法,这意味着它将返回已经声明的模块。
这就是你需要使用
的原因angular.module('starter').controller('', function(){});
了解详情here