Ember.js 模板添加 HTML5 属性

最近开发一个 Chrome 扩展,因为基于 Chrome 浏览器,所以就放心大胆地用各种新技术,比如1:

 代码如下 复制代码
<form>
  <label for=email>邮箱:</label>
  <input type=email required=required title=请输入邮箱地址 name=email placeholder=请输入邮箱地址>
  <input type=submit>
</form>

required2 是 HTML5 增加的元素属性,应用于表单中 input、select、textarea 元素,表示它们是必须项,用户需要填写才能提交。如果提交空内容,浏览器就会显示原生的错误消息,比如:请填写此字段。

在 Ember.js 下,上面的 Email 输入框代码会是这样写的3:

 代码如下 复制代码
{{view Ember.TextField name='email' valueBinding='email' type='email' placeholder='请输入邮箱地址' required='required' title='请输入邮箱地址'}}

检查 Ember.js 生成的 HTML 代码:

 代码如下 复制代码

<input id="ember218" class="ember-view ember-text-field" placeholder="请输入邮箱地址" name="email" type="email">

可以看到,required 与 title 两个属性被抛掉,这是因为 Ember.TextField 原生支持的 HTML 属性有限。但 HTML5 里,像 data-* 这样的属性是经常出现的,required 也很常见。不能因为 Ember.js 原生不支持这样的属性就不用。

Ember.js 提供了一个非常简单的 reopen 方法4,直接扩展 Ember.TextField 类的实例方法和实例属性:

 代码如下 复制代码

Ember.TextField.reopen({
  attributeBindings: ['required', 'title']
});

再检查 Ember.js 生成的 HTML 代码:

 代码如下 复制代码
<input id="ember219" class="ember-view ember-text-field" placeholder="请输入邮箱地址" name="email" required="required" title="请输入邮箱地址" type="email">

已经成功地给 Ember.js 模板加入 HTML5 属性了。

时间: 2024-10-27 02:47:59

Ember.js 模板添加 HTML5 属性的相关文章

Ember.js 模板预编译的学习笔记

Ember.js 里,如果把模板直接写在 index.html 文件中,是这样写的:  代码如下 复制代码 <script type="text/x-handlebars" data-template-name="application"> // 最顶级的模板 ... {{outlet}} </script> <script type="text/x-handlebars" data-template-name=&q

《Ember.js实战》——2.2 自动更新模板

2.2 自动更新模板 Ember.js默认使用Handlebars.js模板引擎.Ember Handlebars实现的一个关键点是无论何时将模板与底层数据联系起来,Ember.js都会在应用各层之间创建双向绑定.在第1章记事本应用程序开发过程中你已经了解了相关工作机制. 思考一下代码清单2-2里的notes/note模板代码. 代码清单2-2 重访notes/note模板 这个示例中包含了两种绑定,第一种是通过Handlebars表达式实现模板绑定:第二种是通过Binding关键字在自定义视图

《Ember.js实战》——2.3 计算属性

2.3 计算属性 计算属性是一个函数,其返回一个从其他变量或表达式(也可以是其他计算属性)获取的值.计算属性与普通JavaScript函数之间的区别在于,Ember.js将计算属性看作其真正的属性.因此,就可以在计算属性上调用get()和set()等`方法,以及绑定/观察它们(观察者概念在本章稍后介绍).通常,在模型对象中定义计算属性,并在控制器和视图中使用它. 目前的记事本应用程序还没用上计算属性,但如果你想增强应用程序功能,在界面左边的事项列表中显示每条事项前20个字符的内容,那么,就请忘掉

Ember.js 计算的属性学习笔记

例子:  代码如下 复制代码 App.Person = Ember.Object.extend({   id: null,   firstName: null,   lastName: null,   age: null,   gender: null }); 在 handlebars 模板里使用: 我的名字叫{{firstName}}{{lastName}},{{gender}}性,今年{{age}}岁. 假定我还想根据 age 的值来划分「幼年」.「少年」.「青年」.「壮年」.「老年」又如何

Ember.js中model 与 content 属性的区别

Note:本文基于 Ember.js 1.4.0 Ember.js 里,路由(route)通过 setupController 方法设置控制器(controller)属性:  代码如下 复制代码 App.ApplicationRoute = Ember.Route.extend({   model: function() {     return {'user': '陈三', 'blog': 'http://www.111cn.net/'};   },   setupController: fu

用js动态添加html元素,以及属性的简单实例_javascript技巧

用js动态添加html元素,以及属性的简单实例 function test(){ //创建节点 var lswt_2=document.createElement("div"); //设置节点id lswt_2.id='lswtColse'; //设置节点属性 lswt_2.style.width='11px'; lswt_2.style.height='10px'; lswt_2.style.top='0px'; lswt_2.style.right='0px'; lswt_2.st

《Ember.js实战》——1.3 Ember.js概览

1.3 Ember.js概览 Ember.js起源于SproutCore框架的第二个版本.在SproutCore 2.0开发期间,SproutCore团队成员已经清楚地认识到,如果想要创建满足目标广泛的Web应用程序的需要,并且体积还保持小巧的易用框架,SproutCore框架的底层结构就需要有个根本改变. SproutCore简介 SproutCore是一个用高度面向组件编程模型开发出来的框架.SproutCore的大多数概念都是从Apple的Cocoa借鉴来的,而Apple也使用Sprout

Ember.js 入门指南——{{link-to}} 助手

如果你不是从前面的文章看下来的你可能需要使用Ember CLI构建一个Ember项目,在Ember CLI的官网与非常详细的解释教程,不过如果你只是为了构建一个Ember项目的框架你只需要三步就可以构建. ember new appName cd appName ember server 只需要在你的终端.控制台执行这3条命令即可,不过在使用这些命令之前你需要安装node.npm等插件!!不过如果是安装Ember CLI网站上的步骤安装应该是很容易的!! 1,link-to助手常规使用 link

《Ember.js实战》——1.4 第一个Ember.js应用程序:记事本应用

1.4 第一个Ember.js应用程序:记事本应用 记事本应用大约有200行程序代码(包括模板和JavaScript代码)以及130行CSS代码.你完全可以在Windows.Mac以及Linux等各种操作系统上使用你喜爱的编辑器来开发并运行这个应用. 提示 我使用JetBrains WebStorm来编写JavaScript应用,但这对你来说不是必需的. 你将通过编写一个简单的记事本Web管理应用来一探Ember.js.该应用功能如下. 添加新事项--应用提供了用户添加事项的专用区域. 选择.查