专为 Rails 设计的前端模块化框架

TaoComponent

Class Methods

tag
( tagName )

设置组件的标签名称。

get
( methodName, function )

为组件定义一个 getter。

set
( methodName, function(val) )

为组件定义一个 setter

attribute
( attributeName..., options )

为组件注册一个或者多个属性,这些属性会使用相同的 options。options 中支持的配置有:

  • type:属性的类型,目前支持的类型有:string number boolean hash array
  • default:属性的默认值
  • observe:制定是否监听属性值的变化。如果设置为 true,属性值发生变化的时候会触发 _attributeChanged_attributeNameChanged 两个回调,默认为 false。

Private Methods

_created
( )

组件被创建的时候触发。

_init
( )

组件第一次在页面上被渲染的时候触发,在组件的生命周期里只会被触发一次。

_connected
( )

组件每次被插入到页面里的时候都会触发。

_disconnected
( )

组件每次被从页面上移除的时候都会触发。

_attributeChanged
( )

组件的属性发生变化之后触发。

_beforeAttributeChanged
( )

组件的属性发生变化之前触发,返回 false 可以取消这次属性修改。

Public Getter

jq

返回 HTML Element 对应的 jQuery 对象,等价于:$(@)

Public Methods

reflow
( )

Force reflow 这个组件对应的 HTML Element。

beforeCache
( )

在离开当前页面之前 Turbolinks 会触发 before-cache 事件,TaoApplication 会在这个事件中调用页面上每个 TaoComponent 的 beforeCache 方法,在这个方法中组件可以决定自己被 cache 的状态。

findComponent
( selectors..., callback )
Return: array of components

通过 css selectors 来查找子 component。最后一个参数是可选的 callback function,会在子 component 加载完成之后被调用。

on
( same as on() in jQuery )

给组件绑定交互事件。

one
( same as one() in jQuery )

给组件绑定交互事件,只会触发一次,触发之后自动解绑。

off
( same as off() in jQuery )

给组件解绑交互事件。

trigger
( same as trigger() in jQuery )

在组件上触发一个交互事件。

triggerHandler
( same as triggerHandler() in jQuery )

在组件上触发一个交互事件,并且不会冒泡,返回最后一个 handler 的结果。

Tao.helpers

全局的 helper 方法。

reflow
( HTML Element )

Force reflow 一个 HTML Element。

findComponent
( selectors..., callback, scope = document )
Return: array of components

通过 css selectors 来查找一个或者多个 component。倒数第二个参数是可选的 callback function,会在 component 加载完成之后被调用。最后一个参数是查找范围。

componentReady
( components..., callback )

检查指定 component 实例的加载状态,在所有 component 加载完毕之后调用 callback,如果所有 component 都已经加载完毕,callback 会立即被调用。