nativescript vue数据表单不更新源数据

nativescript vue数据表单不更新源数据,nativescript,nativescript-vue,Nativescript,Nativescript Vue,有人能帮忙吗 我有一个单页应用程序来显示问题: 如果修改字段,然后按顶部的“保存”,则控制台上不会显示更改的字段 <template> <Page> <ActionBar> <Label text="SAVE" @tap="saveScreen()" /> </ActionBar> <StackLayout> <Ra

有人能帮忙吗

我有一个单页应用程序来显示问题:

如果修改字段,然后按顶部的“保存”,则控制台上不会显示更改的字段

<template>
    <Page>
        <ActionBar>
            <Label text="SAVE" @tap="saveScreen()" />
        </ActionBar>
        <StackLayout>
            <RadDataForm :source="person"/>
        </StackLayout>
  </Page>
</template>

<script>
export default {
    data () {
        return {
            person: {
                name: 'John',
                age: 23,
                email: 'john@company.com',
                city: 'New York',
                street: '5th Avenue',
                streetNumber: 11,
            },
        };
    },
    methods: {
        saveScreen() {
            console.log('=======personName: ' + JSON.stringify(this.person))
        }
    }
}
</script>
<style>
</style>

导出默认值{
数据(){
返回{
人:{
姓名:'约翰',
年龄:23,,
电邮:'john@company.com',
城市:“纽约”,
街道:“第五大道”,
街道号码:11,,
},
};
},
方法:{
保存屏幕(){
console.log('=======personName:'+JSON.stringify(this.person))
}
}
}
我意识到这几乎是一个基本的问题,我在互联网上搜索答案,但没有找到

提前感谢你的帮助。 当做
Hans

RadDataForm
有点棘手,因为它不会自动绑定数据,所以您必须添加一些事件才能获得更改的数据。
初始数据用于创建表单,并在更改时将数据保存到另一个对象,以便您可以侦听
propertyCommitted
事件并获取
editedObject


data(){
返回{
人:{
姓名:“约翰”,
年龄:23,,
电子邮件:“john@company.com",
城市:“纽约”,
街道:“第五大道”,
街道号码:11
},
委员会成员:{}
};
},
方法:{
onPropertyCommitted(数据){
this.committedPerson=data.object.editedObject
},
保存屏幕(){
console.log(这个.committedPerson);
}
}
我不知道这是否是在Vue中实现这一点的最佳方法,但我发现github上存在与此相关的开放问题,并且发布了一些解决方法,但Vue没有。
应该在官方文件中更好地加以解释

下面是一个工作示例


在这里您可以找到一些关于验证、分组等的示例。
这是我的答案。查看save函数

    <StackLayout>
            <StackLayout orientation="vertical" backgroundColor="lightgray">
             <RadDataForm 
                id="myDataForm"
                :source="record"
                 v-on:propertyCommitted="save"/>
   </StackLayout>
   <script>
    import { mapState } from 'vuex'
    import { getViewById } from "tns-core-modules/ui/core/view";
    export default {
        data() {}
        },
        methods:{
         save(){
            console.log('save')
            let data = args.object
            var dataform = getViewById(data, "myDataForm");
            console.log(dataform.editedObject)//<--updated Data Here
            }, 
        }
        computed: mapState({
        record(state){
            return record = this.$store.getters.record;
        }
     };

从“vuex”导入{mapState}
从“tns核心模块/ui/core/view”导入{getViewById};
导出默认值{
数据(){}
},
方法:{
保存(){
console.log('save')
让data=args.object
var dataform=getViewById(数据,“myDataForm”);

console.log(dataform.editedObject)//感谢您的努力和创建此工作示例…但是此示例也有相同的问题。请启动应用程序,更改表单中的字段,然后按“保存”,控制台日志显示未更改的字段。我想将更改的数据从表单发送到服务器。在哪里可以找到此更改的数据?哦,抱歉,没有收到您的问题首先,我更新了我的回答。另一个问题是data.object.editedObject的格式,它是字符串化的JSON表示形式,因此此.committed person.name将不起作用。要将其恢复为JSON格式,请使用:this.committedPerson=JSON.parse(data.object.editedObject)但是,如果用户未修改输入,则不会激发
属性committed
,并且
此.committedPerson
{}
。。。