`
sun4love
  • 浏览: 234537 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

use【组件公共属性】

阅读更多

语法

apply="a-class-name"
apply="class1, class2,..."
apply="${EL_returns_a_class_or_a_collection_of_classes}"
apply="${EL_returns_an_instance_or_a_collection_of_Composer_instances}"

可以指定一个类、类的集合,apply用于初始化组件(译者注:详见use和apply的区别).该类必须实现 Composer接口 ,然后可以在doAfterCompose方法内做一些初始化工作, 因为该方法会在组件和其子组件初始化后自动调用(译者注:callback)

1
<window apply="foo.MyComposer"/>

此外,也可以指定一个 Composer类型对象实例,或者使用el表达得到的Composer对象实例的集合.

注意: 如果指定了el表达式,那么表达式会在组件初始化之前执行. 因此你不能访问组件的引用, 内置隐含变量self 引用的是父组件,如果有的话,或者是当前page,如果当前组件是根组件。

 

===============================

译者注:

我设计了一个错误验证上述观点,因为隐含对象self标示的组件对应的类中,一定没有name123456的getter报错,

但异常信息一定会标示name123456属性所属的类,window组件对应org.zkoss.zul.Window类

label对应org.zkoss.zul.Label类,那么在label appy属性中的self到底是标示那个组件呢?

<window title="My First Window" border="normal" width="200px">

<label apply="${self.name123456}"/>

</window>

运行结果报错信息如下:

Unable to find a value for "name123456" in object of class "org.zkoss.zul.Window" using operator "."

因此apply中的self标示的是父组件或者当前页面对象


======================================================================

 

如果想获取更多的控制权,例如异常处理,可以实现 ComposerExt 接口

假如有一个composer,你想引用到没一个页面,但又不想在每个页面都重复指定,可以注册一个系统级的composer。了解更多信息见 ZK Developer's Reference: System-level Composers.










Syntax

apply="a-class-name"
apply="class1, class2,..."
apply="${EL_returns_a_class_or_a_collection_of_classes}"
apply="${EL_returns_an_instance_or_a_collection_of_Composer_instances}"

It specifies a class, a collection of classes that are used to initialize the component. The class must implement the Composer interface. And then, you can do the initialization in thedoAfterCompose method, since it is called after the component and all its children are instantiated.

1
<window apply="foo.MyComposer"/>

In addition, you specify a Composer instance, or a collection of Composer instances by use of EL expressions.

Note: the EL expressions are, if specified, evaluated before the component is instantiated. So you cannot reference to the component. Moreover, the self variable references to the parent component, if any, or the current page, if it is the root component, in the EL expressions specified in this attribute.

If you want more control such as handling the exception, you can also implement the ComposerExt interface.

If you have a composer that you'd like to apply to every page, you don't need to specify it in every page. Rather, you could register a system-level composer. For more information, please refer to ZK Developer's Reference: System-level Composers.


分享到:
评论

相关推荐

    Vue2图片选择上传组件支持多选和拖放

    为了方便复用,可以将这个组件封装成一个插件,通过`Vue.use()`注册到全局,这样在其他Vue项目中只需简单引入即可使用。 9. **配置项与API**: 组件通常会提供一系列配置项,如上传URL、文件类型限制、最大文件大小...

    Vue-Router路由配置+尾部组件实例

    每个路由对象通常包含`path`(路径)、`component`(对应的组件)和其他可选属性,如`name`(路由的名字)、`props`(传递给组件的属性)等。 ```javascript import Vue from 'vue' import Router from 'vue-router...

    vue组件库

    - `src` 目录:包含组件源码、样式和公共函数。 - `components` 目录:存放各个具体组件,每个组件有自己的 `.vue` 文件。 - `styles` 目录:管理组件的样式文件,如全局样式和组件专属样式。 - `examples` 或 `...

    vue App.vue中的公共组件改变值触发其他组件或.vue页面监听

    本例中,我们探讨的是如何在`App.vue`的公共组件中更改值,并触发其他组件或`.vue`页面的监听事件。具体场景是:在`App.vue`的头部公共组件中有一个输入框,用户输入的词条需要传递到`&lt;router-view&gt;`内的子组件中...

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    面向对象系统分析与设计课件及复习资料

    3.5 公共机制 3.6 扩展机制 3.6.1 构造型 3.6.2 标记值 3.6.3 约束 第4章 use case图 4.1 概述 4. 2 活动者 4.2.1 系统范围与系统边界 4.2.2 活动者 4.2.3 活动者的确定 4.3 use case ...

    快速开发一个vue插件库并发布到npm

    - 在组件脚本中,可以使用`export default`导出组件对象,包含props、data、methods等属性。 5. **配置与打包** - 使用`vue.config.js`配置文件,设置输出路径、公共路径、生产环境配置等。 - 运行`npm run ...

    Vuex实现数据共享的方法

    在组件中,可以通过`this.$store.getters`访问getter,既可以直接使用属性名,如`this.$store.getters.getNumber`,也可以作为方法调用并传递参数。 3、Mutation Mutation是修改Vuex store中状态的唯一途径,它以...

    android圆环百分比视图

    总之,"android圆环百分比视图"是一个自定义的Android UI组件,它结合了图形绘制和自定义属性,提供了高度可定制的界面元素,使开发者能够轻松创建具有专业视觉效果的应用界面。通过理解并运用其中涉及的XML布局、...

    管程 操作系统中的管程 以及实现

    公共变量是共享资源的数据结构,条件变量是用于同步进程的信号量,过程是操作公共变量的函数,入口初始化代码是初始化公共变量和条件变量的代码。 四、管程的示例 以下是一个简单的管程示例: ``` TYPE SSU = ...

    iOS 传值方法(属性传值、代理传值、Block、通知、单例)

    属性传值是最基础的传值方式,通过实例变量或公共属性直接赋值。例如,在两个类`ClassA`和`ClassB`之间,如果`ClassB`是`ClassA`的子类或持有`ClassA`的实例,可以直接通过属性进行赋值。 ```swift class ClassA ...

    RequireJsComponentExample:从一开始就显示如何通过使用RequireJ来创建标准Web组件的源代码-Show source code

    这些组件可能是可配置的,允许通过属性传递参数,或者与其他组件交互。你还可以学习如何通过RequireJS的`shim`配置来处理非AMD(非异步模块定义)的库,如jQuery,使其与RequireJS一起工作。 此外,...

    vue20的可变彩色svg图标方案

    2. **组件化SVG图标**:在Vue中,我们可以创建一个SVG图标组件,接收`color`等属性,然后在模板中传递给SVG元素。 ```javascript // svg-icon.vue &lt;use :xlink:href="iconPath"&gt;&lt;/use&gt; export default { ...

    品牌列表案例初始模板代码

    文件夹`lib`通常包含项目的库文件或者自定义的公共函数和工具。在Vue项目中,可能会存放一些自定义的Vue组件、样式文件、或者是第三方库如axios用于处理HTTP请求。 对于品牌列表案例,可能需要与后端API进行交互,...

    UML各种图的统一

    例如,文中提到的`Customer`、`Goods`、`Order`、`管理员`、`标题title类`、`二级标题类`和`公共操作类`都是类图中的元素,它们定义了系统的基本数据结构和行为。 - **类的属性和操作**:每个类可以包含属性(代表...

    以物件导向方法描述网路电脑辅助教学模型(uml设计实例)

    【物件的封装性、继承性和多元性】封装性是物件导向的核心原则之一,它允许物件隐藏内部细节,只对外提供公共接口,以保护数据的安全性和防止意外修改。继承性则允许新类从现有类中继承特性,从而实现代码的复用和...

    UML参考手册.rar

    - 接口定义了对象的公共行为,可以被其他对象或组件引用和实现。 9. **包(Package)**: - 包用于组织UML模型元素,可以封装一组相关的类、接口和其他包。 10. **注释(Notes)**: - 注释提供对模型元素的...

    C++和C#相互调用dll

    - 创建一个C++ Win32控制台应用程序UseDll,并设置公共语言运行库支持为/clr。 - 在C++程序中,包含头文件并使用#using指令导入C#编写的DLL文件。 - 通过托管指针调用C# DLL中的方法,并获取返回值。 ```cpp #...

    vuecli3基本配置

    可以设置全局请求拦截器(`axios.interceptors.request.use()`)和响应拦截器(`axios.interceptors.response.use()`),进行请求的统一处理,如添加请求头、错误处理等。 6. **公用方法**:可以创建一个`utils`...

    vue路由及子路由实现管理后台基本框架

    在以上代码中,`store` 是 Vuex 状态管理库的一个实例,`isLoggedIn` 是存储用户登录状态的属性。如果访问的页面需要登录权限,而用户未登录,那么会自动跳转到登录页面。 至此,你已经掌握了如何使用 Vue.js 和 ...

Global site tag (gtag.js) - Google Analytics