来自另一个路径的模型类在 NativeScript 中引发错误调用模块

Posted

技术标签:

【中文标题】来自另一个路径的模型类在 NativeScript 中引发错误调用模块【英文标题】:Model class from another path throws error calling module in NativeScript 【发布时间】:2019-11-15 05:38:49 【问题描述】:

我有一个运行良好的 Web 应用程序,然后使用 NativeScript 将其迁移到移动应用程序中。 我在 src/app/model 中有一个模型文件,其中我有一些像这样导出的类模型:

export class User 

  username: string;
  password: string;


我正在尝试将该类模型导入服务类。我的服务类路径是 src/app/auto-generated/service。当我导入它时,该应用程序不起作用。但是,当我在 src/app/auto-generated 中创建相同的类模型,然后将其导入我的服务类时,它可以工作。为什么它会发生在路径上?我该如何解决?

出现错误时我的文件是怎样的:

import  Injectable  from "@angular/core";
import  HttpClient, HttpHeaders  from "@angular/common/http";
import  User  from 'app/model/User';

@Injectable(
  providedIn: "root"
)
export class UserLoginService 
  user: User = new User();

  constructor() 

  login(name: string, password: string, imTid: string): Observable<UiInfo> 
    console.log(name);
    return ;
  


还有错误:

System.err: java.lang.RuntimeException: 无法创建应用程序 com.tns.NativeScriptApplication: com.tns.NativeScriptException: System.err:System.err:调用模块函数时出错 System.err: System.err:无法编译 /data/data/org.nativescript.ngsample/files/app/bundle.js System.err: System.err: SyntaxError: Unexpected token ! System.err:文件: “file:///data/data/org.nativescript.ngsample/files/app/bundle.js, 行:292,列:24 System.err:System.err:StackTrace:System.err: 框架:函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5876) System.err:在 android.app.ActivityThread.access$1100(ActivityThread.java:199) System.err:在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650) System.err:在 android.os.Handler.dispatchMessage(Handler.java:106) System.err: 在 android.os.Looper.loop(Looper.java:193) System.err: 在 android.app.ActivityThread.main(ActivityThread.java:6669) System.err: 在 java.lang.reflect.Method.invoke(Native Method) System.err: 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) System.err:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) System.err:引起:com.tns.NativeScriptException:System.err: System.err:调用模块函数时出错 System.err:System.err: 无法编译 /data/data/org.nativescript.ngsample/files/app/bundle.js System.err: System.err: SyntaxError: Unexpected token ! System.err:文件: “file:///data/data/org.nativescript.ngsample/files/app/bundle.js, 行:292,列:24 System.err:System.err:StackTrace:System.err: 框架:函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:System.err:SyntaxError: 意外的标记 ! System.err:文件:“,行:1,列:265 System.err:System.err:StackTrace:System.err:帧: 函数:'require',文件:'',行:1,列:266 System.err: 框架:功能:'', 文件:'file:///data/data/org.nativescript.ngsample/files/app/starter.js', 行:3,列:1 System.err:帧:函数:'require',文件:'', 行:1,列:266 System.err:System.err:at com.tns.Runtime.runModule(Native Method) System.err: at com.tns.Runtime.runModule(Runtime.java:624) System.err: 在 com.tns.Runtime.run(Runtime.java:616) System.err: 在 com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:21) System.err:在 android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1154) System.err:在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:5871) System.err: ... 8 更多成功同步的应用程序 设备 emulator-5554 上的 org.nativescript.ngsample。

tsconfig.json:


  "compileOnSave": false,
  "compilerOptions": 
    "importHelpers": true,
    "outDir": "./dist/out-tsc",
    "baseUrl": "src",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2016",
      "dom"
    ],
    "module": "es2015"
  

【问题讨论】:

你的意思是它不起作用?究竟显示了什么错误?你能也显示你的导入语句吗? @Manoj 发布了它。谢谢!! 你也可以显示你的tsconfig.json吗? @Manoj 完成!!谢谢 尝试将 "baseUrl": ".", "paths": "~/*": [ "./src/*" ] 添加到您的 tsconfig.json 并使用 import User from '~/app/model/User'; 【参考方案1】:

尝试添加此代码:-

  import  Injectable  from "@angular/core";
  import  HttpClient, HttpHeaders  from "@angular/common/http";
  import  User  from 'app/model/User';

  @Injectable(
   providedIn: "root"
  )
  export class UserLoginService 
  public user: User;

  constructor() 
    this.user = new User();
  

   login(name: string, password: string, imTid: string): Observable<UiInfo> 
    console.log(name);
    return ;
   
 

【讨论】:

【参考方案2】:

谢谢大家。解决方案只是将路径更改为:

import  User from "../../../../model/User";

【讨论】:

以上是关于来自另一个路径的模型类在 NativeScript 中引发错误调用模块的主要内容,如果未能解决你的问题,请参考以下文章

自动加载路径和嵌套服务类在 Ruby 中崩溃

用抽象类在Rails中表示has_many关系

等待来自另一个类的 JApplet 中的用户输入

在 nativescript 中的模态中打开模态

根据来自另一个模型的异步查询在模型中设置虚拟字段

如何搜索来自另一个页面模型的串联名称列表?