Есть ли способ смонтировать функцию в Sidedrawer? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь вызвать функцию, используя смонтированный в boxcontent.vue, но она не работает.

Я попробовал нормальный метод, такой как создание функции, и вызвал ее при смонтированном при загрузке страницы.

Я загрузил свой полный код, потому что для простоты понимания.

import Home from "./Home";
    import Browse from "./Browse";
    import Featured from "./Featured";
    import Search from "./Search";
    import Login from "./Login";
    import Settings from "./Settings";
    import * as utils from "~/shared/utils";
    import SelectedPageService from "~/shared/selected-page-service";   
    import * as appSettings from "tns-core-modules/application-settings"; 

    let methods = {
        onNavigationItemTap: (component) => {
            this.$navigateTo(component, {
                clearHistory: true
            });
            utils.closeDrawer();
        },
        feedData: () => {
            obj.userName = appSettings.getString("user_display_name")
            obj.userEmail = appSettings.getString("user_email")
            alert("data feeded")
        },
        logoutUser: () => {
            appSettings.clear();
            appSettings.remove("user_display_name");
            appSettings.remove("user_email");
            if(appSettings.getString("user_email") == null || appSettings.getString("user_email") == ''){
                alert("user email id removed");
            }
            if(appSettings.getString("user_display_name") == null || appSettings.getString("user_display_name") == ''){
                alert("user name removed");
            }
            utils.closeDrawer();
            this.$navigateTo(Login, {
                clearHistory: true
            });                
        }
    }

    let obj = {
        mounted: () => {
            SelectedPageService.getInstance().selectedPage$
                .subscribe((selectedPage) => this.selectedPage = selectedPage);
            methods.feedData();
            alert("data Feeded");
        },
        data: () => {
            return {
                Home: Home,
                Browse: Browse,
                Featured: Featured,
                Search: Search,
                Login: Login,
                Settings: Settings,
                selectedPage: "",
                userName:"",
                userEmail:""
            };
        },
        components: {
            Home,
            Browse,
            Featured,
            Search,
            Login,
            Settings
        },
        methods
    }

    export default {
        methods,
        obj
    }
</script>

фидданные не вызывают, и я установил оповещение для проверки, но безуспешно.

1 Ответ

0 голосов
/ 17 октября 2019

Хорошо, так что вам нужно переместить объявление методов вверху, и затем вы можете вызвать feedData внутри вашего метода:

let methods = {
    onNavigationItemTap: (component) => {
        this.$navigateTo(component, {
            clearHistory: true
        });
        utils.closeDrawer();
    },
    feedData: () => {
        this.userName = appSettings.getString("user_display_name");
        this.userEmail = appSettings.getString("user_email");
    }
};

let obj = {
    mounted: () => {
        SelectedPageService.getInstance().selectedPage$
            .subscribe((selectedPage) => this.selectedPage = selectedPage);
        methods.feedData();
        alert("datta Feeded");
    },
    data: () => {
        return {
            userName: "",
            userEmail: ""
        };
    },
    methods

};

export default {
    methods,
    obj
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...