Родной скрипт-флажок не будет отображаться

Я пытаюсь интегрировать nativescript-checkbox в свое приложение vue. Однако использование примера vue не очень понятно. Они не говорят, следует ли импортировать класс в компонент.

Но я пробовал все это, я импортировал nativescript-checkbox в свой компонент, и он все равно не отображался. Я даже пытался использовать CheckBox вместо check-box из документации.

In main.js

Vue.registerElement('CheckBox', () => require('nativescript-checkbox').CheckBox, {
    model: {
        prop: 'checked',
        event: 'checkedChange'
    }
});

in Tasks.vue

<template>
    <Page class="page">
        <ActionBar class="action-bar">
            <!--
            Use the NavigationButton as a side-drawer button in Android
            because ActionItems are shown on the right side of the ActionBar
            -->
            <NavigationButton ios:visibility="collapsed" icon="res://menu" @tap="onDrawerButtonTap"></NavigationButton>
            <!--
            Use the ActionItem for IOS with position set to left. Using the
            NavigationButton as a side-drawer button in iOS is not possible,
            because its function is to always navigate back in the application.
            -->
            <ActionItem icon="res://navigation/menu"
                        android:visibility="collapsed"
                        @tap="onDrawerButtonTap"
                        ios.position="left">
            </ActionItem>
            <Label class="action-bar-title" text="Tasks"></Label>
        </ActionBar>

        <GridLayout class="page-content">
            <!--<Label class="page-icon fa" text.decode="&#xf0ae;"></Label>
            <Label class="page-placeholder" :text="message"></Label>-->
            <ListView for="task in tasks">
                <v-template>
                    <!-- Shows the list item label in the default color and style. -->
                    <check-box :text="task.text" style="width: 25%" />
                    <Label :text="task.text" class="item" style="width: 75%" />
                </v-template>
            </ListView>
        </GridLayout>
    </Page>
</template>

<script>
    import * as utils from "~/shared/utils";
    import SelectedPageService from "../shared/selected-page-service";
    import CheckBox from 'nativescript-checkbox';

    export default {
        components: { CheckBox },
        mounted() {
            SelectedPageService.getInstance().updateSelectedPage("Tasks");
        },
        data() {
            return {
                tasks: [
                    {'text': 'One1'},
                    {'text': 'Two'},
                    {'text': 'Three'}
                ],
                isChecked: false
            }
        },
        computed: {
            message() {
                return "<!-- Tasks Page -->";
            }
        },
        methods: {
            onDrawerButtonTap() {
                utils.showDrawer();
            }
        }
    };
</script>

<style scoped lang="scss">
    // Start custom common variables
    @import '../app-variables';
    // End custom common variables

    // Custom styles
    .item {
        padding: 20;
    }
</style>

person Halnex    schedule 05.07.2019    source источник


Ответы (1)


Вы всегда должны использовать компоновку, если хотите объединить 2 или более компонентов. Поэтому постарайтесь,

        <ListView for="task in tasks">
            <v-template>
                <GridLayout columns="auto,*">
                   <!-- Shows the list item label in the default color and style. -->
                   <check-box :text="task.text" col="0" />
                   <Label :text="task.text" class="item" col="1" />
                 </GridLayout>
            </v-template>
        </ListView>
person Manoj    schedule 05.07.2019
comment
Спасибо. Я новичок в создании мобильных приложений с помощью javascript. Каково соглашение о наличии флажка и метки? Должен ли я удалить метку и просто использовать атрибут text внутри CheckBox или сохранить метку? - person Halnex; 05.07.2019
comment
Это зависит, например, от Android, при нажатии на метку также будет установлен / снят флажок. Возможно, для этой цели вы захотите использовать текст флажка (в iOS флажок не является стандартным компонентом, поэтому это может не применяться). Или, если вы предпочитаете больше стилей, форматированных строк и т. д., имеет смысл использовать отдельную метку. - person Manoj; 05.07.2019
comment
Ничего не происходит, когда я нажимаю на ярлык. Мне нужно нажать на текст флажка, чтобы проверить его. - person Halnex; 05.07.2019
comment
У меня работает на Android, я даже перепроверил прямо сейчас (v8.1). Нажатие на текст флажка переключает состояние флажка. - person Manoj; 05.07.2019
comment
Да, но если рядом с флажком стоит Label, при нажатии на него ничего не происходит. - person Halnex; 05.07.2019
comment
Да, это два разных компонента, ничего бы не случилось. - person Manoj; 05.07.2019