Angular上有时不会出现登录按钮

时间:2015-01-22 09:16:55

标签: javascript angularjs linkedin linkedin-jsapi

我在index.html中使用了标准的LinkedIn JSAPI脚本:

<script type="text/javascript" src="http://platform.linkedin.com/in.js"></script>

我正在使用Angular.js并在我的登录页面中显示此代码:

<button class="btn btn-primary" ng-click="FBlogin()">Connect with Facebook</button> 
<script type="in/Login" data-onAuth="getLinkedInProfile"></script>
<script type="text/javascript">
    // upon getting in.js above, apply to register window scope
    function getLinkedInProfile() {
        IN.API.Profile("me").fields(["id", "firstName", "lastName", "email-address", "picture-urls::(original)", "industry", "languages", "educations", "three-current-positions", "three-past-positions"])
            .result(function(me) {
              angular.element(document.getElementById('login_window')).scope().linkedInRegistration(me) // calls scope function
            })
            .error(function(error) {
              console.log('>> error on LinkedInLoad', error)
            })
    }
</script>

在某些随机机会上,按钮根本不会出现。我有点注意到,如果我删除了所有的字段()选项,那么按钮会可靠地显示出来,但如果这是原因,我就不会。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我没有角度专家,但我可以告诉你,一旦用户第一次进行身份验证,无论何时登录到LinkedIn.com,他都会自动登录到您的网站并且按钮消失。

这只发生在JavaScript API上,我相信你身边发生了什么。

答案 1 :(得分:0)

我今天注意到,当状态发生变化时,linkedIn登录按钮会消失。如果按钮处于状态A并且状态更改为B然后再返回到A,则不再显示该按钮。 我通过使用指令放置按钮而不是将其硬编码到视图中来解决它。我使用的解决方案是在stackoverflow上回答类似的问题: LinkedIn share button only appearing on initial load in AngularJS app

希望这可以帮助其他人: - )