首页 > 解决方案 > Ojet ViewModel 中的关注点分离

问题描述

我正在使用默认导航模板创建一个新的 OJET 应用程序。我的 ViewModel 代码变得庞大,因为我有许多验证和 API 需要调用。如何将我的整个验证逻辑分离到一个单独的 JS 文件中并将这个文件导入我的 ViewModel。我尝试在 main.js 级别创建一个新文件并将其添加到 m viewmodel 的定义部分,但这不起作用。

标签: backbone.jsrequirejsoracle-jet

解决方案


OJET 有库 require.js 可以实现延迟加载。

在您的 ViewModel 代码中,您必须以与此处类似的方式定义您的依赖项,并将其作为参数传递以便能够调用此导入(请注意定义中依赖项的顺序):

define([..., 'your-dependency-here', ...],
  function(..., dependency, ...) {
    dependency.function();

您还需要在 js 文件夹中的 path_mapping.json 中传递这个新文件,如下所示:

"your-dependency-here": {
  "debug": {
      "path": "path/to/dependency/from/jsFolder"
  },
  "release": {
      "path": "path/to/dependency/from/jsFolder"
  }
}

另外,不要创建依赖项的循环,这会导致 require.js 中的错误。


推荐阅读