The Awesome Power of Auto-Binding Templates -- Polycasts #08 - 1502220382
Last updated
Was this helpful?
Last updated
Was this helpful?
视频发布时间
2015年1月28日
视频介绍
Super charge your app with Polymer data bindings.
视频推介语
暂无,待补充。
翻译
润稿
终审
原始链接
中文字幕
翻译流水号
加入字幕组
lch
王光森
--
1502220382
各位朋友 大家好
我是Rob Dodson
欢迎回到第二季的Polycast
在今天的一集中 我们来看一下
自动绑定的template元素
这是一个不为大多数人所知的标签之一
但对于构建你的应用却有很大的帮助
让我们一起来看一下
如果你之前或多或少接触过web组件
你可能已经认出这是新的template元素
template元素具有一些非常酷的特性
第一也是最重要的 你放入一个template元素的
任何内容都将被完全冻结
这意味着我们放在这里的这个H1标签
将不会在页面上显示出来 除非我们真正地
获取这个template元素的结构并且将其释放出来
另外 任何需要
外部资源的元素 比如一个图片标签
也都不会产生任何的HTTP请求
还有 如果你的template元素里面有脚本的存在
这些脚本也不会被执行 直到这些脚本
在这个页面上被激活
这里有一些十分便利的特性
通常地 如果你想要显示这些内容
正如我说的 你需要使用一些Javascript来使
这些内容展现到页面上
但是如果你正在使用Polymer 事实上你可以
为你的template元素加一个属性
然后就可以设置你的template元素是自动绑定的
这将会
把你的template元素转换为被认为是
一个类型扩展的自定义元素
事实上 正在发生的事情就是Polymer
已经为这个元素确定了一个定义
实际上它加载了Polymer的库
所以当你启动你的应用
它就已经在那里并做好了被使用的准备
现在 你的自动绑定的template元素
将会立即携带它的所有内容
并激活到页面上
不仅如此,实际上它还允许你
使用绑定到这个内容上的数据
那么就让我来用一个例子来展示如何做到这些
这里我们已经准备好了一个模板元素
而且其中我放了一个H1标签
因为我设置了is参数的自动绑定属性
所以我能借助数据绑定的威力
我要做的第一件事
就是把H1标签的内容替换成花括号
并且定义一个范围变量
在这个例子中 我把这个变量命名为message
在另一处的JavaScript中
我可以用querySelector选择模板元素
然后为message变量提供一个值
这个值就会被传递到我的H1标签
然后在页面上显示文本内容
好吧 我知道这是一个非常简单的例子
那么先切到我们的代码编辑器
我们来试着写一些Polymer元素
这里我有一个非常基础的应用程序结构
使用了Core Drawer Panel以及一些元素
也就是我们在之前的一集中构建的
如果你还没有相关文件 我在之前的节目中提供了链接
并把它们放到了视频介绍里面
现在如果我打开浏览器
检查页面的结构 你可以看到它确实很简单
我们已经有了一个core菜单和几个可以点击的按钮
在这里是我们应用的标题
目前为止什么都还没有发生
所以我想做的第一件有意思的事就是使用绑定的数据
更改我应用的标题
回到我的编辑器 我创建一个模板
然后给它一个自动绑定的属性
我还要给它一个ID
这样我就能在稍后的JavaScript中来调用它
接着就直接把我应用中的所有内容剪切
然后粘贴到这个模板里面
接下来我找到写着My App的地方
并且把内容替换成绑定的数据
我把这个数据绑定命名为heading
然后我打开我的app.js文件
对我的模板使用querySelector
并指定我们刚才设定好的ID
同时调用我的自动绑定的template元素
就可以直接为那个heading变量赋值
在这个例子中 我让它显示 Hello Polycasters
现在当我刷新浏览器中的页面
你就会看到应用的标题
已经变成了 Hello Polycasters
就如同展示的这般酷炫 但是这个菜单
仍然没有在我们的应用程序中做任何事
所以我们接下来设置它
回到我的编辑器 我定义一个名叫selected的变量并赋值为0
这是我创建的
另一个范围变量
我在index文件中找到core菜单
然后将这个原本赋值为0的固定值
改为调用范围变量selected
接着往下看到我页面中的container
这里就是放置各种各样的
需要显示在页面上的内容
我们来修改一些文本
这些文本最终会被输出到页面上
这里我们使用一下那个范围变量selected
切回浏览器 我再次刷新页面
然后点击我菜单上的不同元素
你会看到数字在变化
这使我知道当前哪个页面被选中
这里还有一些给你的专业建议
当你使用自动绑定的template元素的时候
如果你需要通过JavaScript访问其中的元素
你就需要监听它的模板绑定事件
其原因在于自动绑定的template元素
是异步地输出它的内容的
为了演示如何做到这些
我们只需要在控制台中查看
core菜单元素自身的日志
实现的方式是首先给我的template元素
添加一个事件监听
然后我将监听模板绑定事件
这样我就能知道内容什么时候被输出到页面
接着 在回调函数中
我只要再次调用core菜单
因为我已经知道这是一个可用的文档元素
这样我们就向控制台输出了日志
回到Chrome
我刷新一下页面然后打开开发人员工具
你就可以看到下面
core菜单的日志被立即输出
而且上方页面中的core菜单元素以高亮显示
那么现在你应该已经准备好为你自己的应用
添加数据绑定了
在下一集中 我将会把自动绑定的template元素
与一个称作core页面的元素相结合
这样我们就能真正地动态地改变
我们应用中的内容
敬请锁定我们的节目
总之 感谢你的观看
我们下期节目再见