Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 登录按钮有时不会出现在屏幕上_Javascript_Angularjs_Linkedin_Linkedin Jsapi - Fatal编程技术网

Javascript 登录按钮有时不会出现在屏幕上

Javascript 登录按钮有时不会出现在屏幕上,javascript,angularjs,linkedin,linkedin-jsapi,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</b

我在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>
连接Facebook
//在获得上面的in.js后,应用以注册窗口范围
函数getLinkedInProfile(){
在.API.Profile(“me”)字段中([“id”、“名字”、“姓氏”、“电子邮件地址”、“图片URL::(原件)”、“行业”、“语言”、“教育程度”、“三个当前职位”、“三个过去职位”])
.结果(功能(me){
angular.element(document.getElementById('login_window')).scope().linkedInRegistration(me)//调用scope函数
})
.错误(函数(错误){
console.log('>>LinkedIn加载时出错',错误)
})
}

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

我不是角度专家,但我可以告诉你,一旦用户第一次进行身份验证,只要他登录到LinkedIn.com,他就会自动登录到你的网站,按钮就会消失


这只会发生在JavaScript API中,我相信这正是发生在您这边的事情

我今天注意到,当状态发生变化时,linkedIn登录按钮会消失。如果按钮处于状态A,状态更改为B,然后又返回到A,则按钮不再显示。 我使用一个指令来放置按钮,而不是将其硬编码到视图中,从而解决了这个问题。我使用的解决方案是在stackoverflow对类似问题的回答:


希望这对其他人有所帮助:-)

我不确定是什么原因造成的。但是angular有一个应用程序生命周期,解析HTML、配置模块、注册服务等。我认为如果您将此功能集成到
angular.factory
中,应该可以。您能告诉我们您的功能在哪里调用吗?可能有些东西加载不正确。在我登录后返回数据后,会调用函数getLinkedInProfile()。什么意思?