b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

视图层的作用_cad视图层设置_视图和表的区别(4)

电脑杂谈  发布时间:2016-12-09 15:07:58  来源:网络整理

应用可以通过在视图中定义一个与钩子名称相同的方法来实现钩子。另外,也可以在视图上注册一个钩子的器:

如上所述,Handlebars通过创建视图在视图层级中表示绑定的值。每次使用Handlebars表达式时,无论是一个简单的值,还是一个如同{{#with}}或{{#if}}这样的块助手,Handlebars都会创建一个新视图。

由于在Ember中这些视图只用于内部记录,它们对于视图公开的parentView和childViewsAPI都是不可见的。公开的视图层级只反映使用{{view}}助手或通过ContainerView(见下)创建的视图。

例如,考虑如下的Handlebars模板:

渲染这个模板将创建一个如下所示的层级:

在本场景的背后,Ember跟踪Handlebars表达式附加的虚拟视图:

从TextArea内部,parentView应该指向FDAContactForm,而FDAContactForm的childViews应该包含一个只有这个TextArea视图的数组。

通过询问包含虚拟视图的_parentView或_childViews可以查看视图层级的内部结构:

警告! 不要在应用代码中依赖这些内部的API。这些API可能在不公开知会的情形下发生改变。返回的值也可以观察和绑定,也可以不是一个Ember对象。如果确实需要使用这些API,可以联系Ember.js开发团队,以便提供一个更加友好的针对这些应用场景的公共API。

概要:这些API就如同XML。如果需要使用,那么可能没有正确的理解问题本身。请重新考虑一遍。

视图的一个重要责任是负责将用户的原生事件转换成在应用中代表特定语义的事件。

例如,一个删除按钮讲一个原生的click事件转换为应用级的特性“从数组中删除这个元素”。

为了响应用户事件,可以创建一个视图的子类,来将事件实现为一个方法:

当创建一个新的Ember.Application实例时,使用jQuery事件委派接口,为每个本地浏览器事件注册了一个事件处理器。当用户触发一个事件时,应用的事件分发器将找寻离事件的目标最近的,处理了该事件的视图。

视图实现一个事件通过定义一个与事件名对应的方法。如果事件的名称由多个词组成(如mouseup),那么实现的方法应该采用事件名称的驼峰命名格式(mouseUp)。

事件将在视图层级中一直向上冒泡,知道到达根视图。一个事件处理器可以如同使用jQuery事件处理一样的技术来停止传播事件:

在方法中返回假

调用event.stopPropagation

例如,假定定义了如下的视图类:

下面是使用这些视图类的Handlebars模板:

如果点击了<h1>,那么在浏览器的控制台应该看到如下的输出:

可见Ember调用了最近的接收到事件的子视图的处理器。事件继续冒泡到ParentView,但是没有到达GrandparentView,因为ParentView在其事件处理器中返回了假。

同样,也可以使用事件冒泡技术来实现类似的模式。例如,可以实现一个定义了submit方法的FormView。因为浏览器会在用户在一个文本输入框中敲回车的时候触发submit事件,因此在表单视图上定义一个submit方法是可以正常工作的。

Ember内置支持下列本地的浏览器事件:

事件名方法名

在创建新的应用时,可以给事件分发器添加更多的事件:

为了使自定义事件可以正常工作,HTML5规范必须定义事件为“冒泡”,或者jQuery必须提供了针对该事件的一个事件委派。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-22614-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘二霞
      刘二霞

      新生代经济和新生代偶像的完美契合

    热点图片
    拼命载入中...