NativeScript + Angular RadDataForm表单源初始化问题

我在Angular 8中有应用程序。我决定迁移到NativeScript。我想用RadDataForm插件创建表单。

...
<RadDataForm [source]="album">
    <TKEntityProperty tkDataFormProperty name="owned"
        displayName="Do I Own This?" index="1"></TKEntityProperty>
    <TKEntityProperty tkDataFormProperty name="bandName"
        displayName="Band name" index="1"></TKEntityProperty>
    <TKEntityProperty tkDataFormProperty name="releaseYear"
        displayName="Release year" index="2">
        <TKPropertyEditor tkEntityPropertyEditor type="Number">
        </TKPropertyEditor>
    </TKEntityProperty>
</RadDataForm>
...

这种形式在控制器中初始化相册对象时有效:

album = {owned: true,bandName: 'Crazy Band',albumName: 'Awesome Album',releaseYear: 1999};

但是我以前在Angular中所做的是

Template:
<input [(ngModel)]='album.albumName'>

Controller:
album = {};

它奏效了。在NativeScript中,如果未初始化对象,则会出现错误:

RadDataForm._syncEditorsWithNativeEditors(file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-ui-dataform/ui-dataform.js:864:46)
at RadDataForm.reload(file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-ui-dataform/ui-dataform.js:761:14)
at RadDataForm._updateSource(file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-ui-dataform/ui-dataform.js:597:10)
at RadDataForm.createNativeView(file:///data/data/org.nativescript.preview/files/app/tns_modules/nativescript-ui-dataform/ui-dataform.js:537:10)
at ViewBase._setupUI(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:492:25)
at (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:534:13)
at LayoutBaseCommon.eachChildView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/layouts/layout-base-common.js:125:20)
at ViewCommon.eachChild(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view/view-common.js:1010:10)
at ViewBase._setupUI(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:533:10)
at (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:534:13)
at ContentView.eachChildView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/content-view/content-view.js:70:7)
at ViewCommon.eachChild(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view/view-common.js:1010:10)
at ViewBase._setupUI(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:533:10)
at (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:534:13)
at LayoutBaseCommon.eachChildView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/layouts/layout-base-common.js:125:20)
at ViewCommon.eachChild(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view/view-common.js:1010:10)
at ViewBase._setupUI(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:533:10)
at (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:534:13)
at LayoutBaseCommon.eachChildView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/layouts/layout-base-common.js:125:20)
at ViewCommon.eachChild(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view/view-common.js:1010:10)
at ViewBase._setupUI(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:533:10)
at (file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:534:13)
at ContentView.eachChildView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/content-view/content-view.js:70:7)
at PageBase.eachChildView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/page/page-common.js:126:36)
at ViewCommon.eachChild(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view/view-common.js:1010:10)
at ViewBase._setupUI(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:533:10)
at ViewBase._addViewCore(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:432:12)
at ViewBase._addView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/core/view-base/view-base.js:421:10)
at FragmentCallbacksImplementation.onCreateView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/frame/frame.js:689:13)
at FragmentClass.onCreateView(file:///data/data/org.nativescript.preview/files/app/tns_modules/@nativescript/core/ui/frame/fragment.js:29:34)
at com.tns.Runtime.callJSMethodNative(Native Method)
at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1286)
at com.tns.Runtime.callJSMethodImpl(Runtime.java:1173)
at com.tns.Runtime.callJSMethod(Runtime.java:1160)
at com.tns.Runtime.callJSMethod(Runtime.java:1138)
at com.tns.Runtime.callJSMethod(Runtime.java:1134)
at com.tns.FragmentClass.onCreateView(FragmentClass.java:54)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at androidx.fragment.app.FragmentManagerImpl.execPendingactions(FragmentManager.java:2273)
at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:793)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:173)
at android.app.activityThread.main(activityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)

游乐场代码: https://play.nativescript.org/?template=play-ng&id=00XiAP&v=4

看起来像bug,但也许我错过了一些东西。

riyeying 回答:NativeScript + Angular RadDataForm表单源初始化问题

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3037673.html

大家都在问