Ng-click Angular JS不起作用

时间:2015-11-25 09:25:24

标签: javascript angularjs angularjs-ng-click

在我看来

<button type="button"
                ng-disabled="isProcessing"
                ng-click="login.ssoFacebook()"
                class="button button-primary">
                <span class="icon icon-social-facebook"></span>
                Login Using Facebook
            </button>

当我点击按钮时facebook不起作用 我的控制器

this.ssoFacebook = function(){
        // intiate
        ssoAuth.facebook.initiate()
        .then(function(customer){
            if (!customer) throw 'error system';

            authService.setCurrentSession(customer, $scope);
            $timeout(function() {
                $scope.$emit(GLOBAL_EVENTS.SYSTEM.ACCOUNT.SESSION.LOGIN_SUCCESS);
            }, 500);
            // redirect or something
            $state.go('products', {}, {reload: true});
        })
        .catch(function(error){
            $scope.$emit(GLOBAL_EVENTS.SYSTEM.ACCOUNT.SESSION.LOGIN_FAILED, error);
        });
    };

我做错了吗?谢谢提前

3 个答案:

答案 0 :(得分:1)

替换此代码,

this.ssoFacebook = function(){
...
}

用,

$scope.login = {};
$scope.login.ssoFacebook = function(){
..
}

这可能是个问题。

答案 1 :(得分:1)

如果你想使用来自控制器而不是范围的功能,你需要在attribute ng-controller中的html中标记这个

ng-controller="ControllerName as login"

以下可以使用

<button type="button"
            ng-disabled="isProcessing"
            ng-click="login.ssoFacebook()"
            class="button button-primary">
            <span class="icon icon-social-facebook"></span>
            Login Using Facebook
</button>

答案 2 :(得分:0)

将ng-click更改为 ng-click="ssoFacebook()"

并在您的控制器中更改为:

$scope.ssoFacebook = function(){ ... }