Oracle JET 组件间数据传递方法。

  路由:父路由:customers Router  子路由: cust Router

  这里 Router 和 module 结合使用。

    customer 包括 customers.js 和 customers.html

    cust 包括 cust.js 和 cust.html

  在 customers 中 cust 以 ojModule 显示。

  1. cust.js 中获取父路由方法:

define(['ojs/ojcore', 'knockout', 'jquery'], function (oj, ko, $) {
function cust(params) {
var parentRouter = params.ojRouter.parentRouter;
      self.custRouter = parentRouter.createChildRouter('cust');
}
return cust;
})

  这里 params 不需要在父路由中传入东西即可使用 params 。使用 params.ojRouter.parentRouter 。即可获取父路由。

  使用 parentRouter.createChildRouter('cust') 则可以创建子路由。

  注意要使用 return cust ,不能 return new cust()

  2. 父子组件通信。

  1) customers.js

define(['ojs/ojcore', 'knockout', 'jquery'], function (oj, ko, $) {
function customers() {
this.text = ko.observable('123');
this.customersRouter = oj.Router.rootInstance;
this.customersRouter.configure({
'cust' : {label: 'cust'},
......
})
this.moduleConfig = ko.pureComputed(function() {
return $.extend(true, {}, this.customersRouter.moduleConfig, {
'params': { 'data': 'test','text': this.text}
})
})
}
return customers;
})

  2) customers.html

  在插入 ojModule 上的地方写上 ojModule: moduleConfig

  3) cust.js

define(['ojs/ojcore', 'knockout', 'jquery'], function (oj, ko, $) {
function cust(params) {
var data = params.data;
var text = params.text;
text('456')
}
return cust;
})

  子组件直接使用 params.data 就可以直接获取父组件传入的数据。

  响应地,子组件更改内容 text('456'),也会反映到父组件之中。

  

  3.在使用 Router 和多层嵌套 module 时需要注意,在 main.js 的 requirejs.config 中需要设置基本的 url ,否则多层嵌套的 module 不会执行。因为 module 路径会默认当前的 url。

    如 module 在 http://XXX/ 下默认寻找 views 和 viewModels 在 js 目录下,可寻找成功。

    若使用路由 url 变为 http://XXX/customers ,则会变成在 customers/js 目录下寻找 views 和 viewModels 。这样会使寻找文件失败,无法显示 module。

    所以,在 main.js 下设置好 baseURL,默认为 baseURL: '/js'  更改为

    baseUrl: window.location.href.split('#')[0].substring(0, window.location.href.split('#')[0].lastIndexOf('/')) + '/js'

    

最新文章

  1. 开源文档管理工具Joomla的网站安装
  2. iOS多线程GCD(转)
  3. [redis] 征服Redis系列
  4. svn认证失败时的解决
  5. 如何在C#中实现图片缩放
  6. vb.net写的odbc连接dsn数据源和ole链接oracle的小例子
  7. Linux 运维笔记
  8. php开启伪静态(2转)
  9. js限制日期选择范围是两个月
  10. 解决mysql漏洞 Oracle MySQL Server远程安全漏洞(CVE-2015-0411)
  11. DDGScreenShot—截取图片的任意部分
  12. PHP使用CURL抓取网页
  13. Android系统架构与系统源码目录
  14. vue 中动态绑定class 和 style的方法
  15. Sql_join left right
  16. Manjaro kde 18.0安装与基本配置
  17. 【Leetcode】292. Nim Game
  18. 部署jar项目常用命令
  19. [Python]网络爬虫(五):urllib2的使用细节与抓站技巧(转)
  20. 在 SharePoint 2010 打开网页出错时,显示实际的错误信息

热门文章

  1. npm学习(十二)之高级用法
  2. java实现spark常用算子之cartesian
  3. ES6拷贝方法
  4. IDEA debug模式鼠标悬停提示变量值
  5. Delphi 条件语句和程序的选择结构
  6. ipcclean - 从退出的PostgreSQL服务器中删除共享内存和信号灯
  7. 安装Python包报错——ReadTimeoutError
  8. Centos7下lvs负载均衡lvs-tun模式配置
  9. 自动化运维——HelloWorld(一)
  10. SpringBootMybatis 关于Mybatis-generator-gui的使用|数据库的编码注意点|各项复制模板