在控制器内部,我有一个if x then y else ()
函数,应该使用ng-click调用,如下所示:
login()
MainJS:
<body ng-app="angularoauthexampleApp">
<div class="social-buttons">
<a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Facebook</a>
<a href="#" class="btn btn-google"><i class="fa fa-google" ng-click="login()"></i> Google</a>
</div>
</body>
控制器:
angular.module('angularoauthexampleApp', [
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.when('/afterlogin', {
templateUrl: 'views/afterlogin.html',
controller: 'AboutCtrl'
})
.when('/access_token=:accessToken', {
template: '',
controller: function ($location, $rootScope) {
var hash = $location.path().substr(1);
var splitted = hash.split('&');
var params = {};
for (var i = 0; i < splitted.length; i++) {
var param = splitted[i].split('=');
var key = param[0];
var value = param[1];
params[key] = value;
$rootScope.accesstoken = params;
}
$location.path("/afterlogin");
}
})
.otherwise({
redirectTo: '/'
});
});
单击表单上的按钮或事件未被触发时,没有任何反应。我无法看到代码有什么问题,但有些代码无法正常工作
答案 0 :(得分:1)
MainCtrl
被加载到views/main.html
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
这必须在根html中的ng-view
指令中加载。
在html
内,您可以使用login()
。
另一种方法是直接在root html中使用控制器:
<body ng-app="angularoauthexampleApp">
<div class="social-buttons" ng-controller="MainCtrl">
<a href="#" class="btn btn-fb"><i class="fa fa-facebook"></i> Facebook</a>
<a href="#" class="btn btn-google"><i class="fa fa-google" ng-click="login()"></i> Google</a>
</div>
</body>
此外,您已将ng-click添加到i
元素,因此您必须单击login()
的G图标才能生效。将它移动到a元素,你应该没问题。