Как присвоить во VueJS свойству data json объект из ответа Facebook?

<script type="text/javascript">
        new Vue({
            el: '#app',
            data: [],
            methods: {
                connectToFacebook: function() {
                    FB.login(function(response) {
                        if (response.authResponse) {
                            $.getJSON("{{ route('callback') }}", function(data){
                                console.log(data[0]);
                            });
                        } else {
                            return false;
                        }
                    });
                }
            }
        });
    </script>

    <script>
        window.fbAsyncInit = function() {
          FB.init({
            appId: '{{ env('FACEBOOK_APP_ID') }}',
            cookie: true, // This is important, it's not enabled by default
            version: 'v2.8'
          });
        };
      (function(d, s, id){
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));
    </script>


Console.log(data[0]) - через 1-2 секунды выдаёт объект

И тут вопрос. Никак не могу свойству data присвоить значение полученyого json-a ???
  • Вопрос задан
  • 468 просмотров
Решения вопроса 1
data: {
            facebookData:null
        },
        methods: {
            connectToFacebook: function() {
                var self = this;
                FB.login(function(response) {
                    if (response.authResponse) {
                        $.getJSON("{{ route('callback') }}", function(data){
                            console.log(data[0]);
                            self.facebookData = data;
                        });
                    } else {
                        return false;
                    }
                });
            }
        }


Но это без стрелочных функций, я ecmascript новый, к сожалению, не использую. Надеюсь, кто из фронтендеров красивее напишет.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sfi0zy
@sfi0zy
Creative frontend developer
Никак не могу свойству data присвоить значение полученyого json-a ???

Что-то в вашем примере кода не видно, чтобы вы свойству data вообще что-то присваивали. Но здравый смысл и немного интуиции подсказывают, что пара вложенных function(){...function(){.. не оставляют ни следа от контекста, в котором находится data, соответственно json вы получили, а присваиваете значение чему-то не тому. Используйте стрелочные функции, чтобы избежать таких проблем в перспективе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы