Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288009
  • 博文数量: 124
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 21
  • 用 户 组: 普通用户
  • 注册时间: 2016-08-20 14:44
文章分类

全部博文(124)

文章存档

2020年(1)

2018年(2)

2016年(2)

2015年(6)

2014年(10)

2013年(23)

2012年(7)

2011年(18)

2010年(15)

2009年(8)

2007年(8)

2006年(23)

2005年(1)

我的朋友

分类: JavaScript

2015-02-16 22:31:08

html文件如下:

点击(此处)折叠或打开

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. <script type="text/javascript" src="./js/jquery-1.11.1.min.js"></script>
  7. <script type="text/javascript" src="./js/emberjs/handlebars-v1.3.0.js"></script>
  8. <script type="text/javascript" src="./js/emberjs/ember.js"></script>
  9. <script type="text/javascript" src="./js/emberjs/ember-data.js"></script>
  10. <script type="text/javascript" src="./js/app.js"></script>
  11. </head>
  12. <body>
  13. <script type="text/x-handlebars" >
  14. {{view App.CateView content=first }}
  15. first.name={{first.name}}
  16. </script>
  17. </body>
  18. </html>

  19. <script type="text/x-handlebars" data-template-name="cate1">
  20. <div style="display:inline-block;width:100px;">
  21.     hello,I am here
  22.     view.content.name={{view.content.name}}
  23.     controller.first.name={{controller.first.name}}
  24.     finished
  25. <div>
  26. </script>
上面的代码的第14行表示此处插入一个view, 第二个参数表示view的Class名字, 后续的参数都会已名值对的形式插入到view对象中去;

22-27行定义了一个view;
其中可以使用view,controller访问view,和controller中的对象;controller.first直接来源于App.ApplicationControlle,而view.content则来源于14行的content=first;

从handlebars的源码:
  1. templateName = script.attr('data-template-name') || script.attr('id') || 'application',可见末班中的这个属性值效果

另外由于代码很复杂,想找到一个调试点都不容易,可以通过写错误模板的情况下让程序报错找到切入点;如本处的代码就是通过在第14行写上content=first();语法报错发现的.
app.js如下:

点击(此处)折叠或打开

  1. App = Ember.Application.create();

  2. App.ApplicationController=Ember.Controller.extend({
  3.     first:{name:"testname",hi:function(){alert ("first")}},
  4.     view:{name:"viewname"},
  5. });
  6. App.CateView = Ember.View.extend({templateName: 'cate1',//跟程序中的模板挂钩
  7.     name:"haha",
  8.     didInsertElement:function(){
  9.         //var content=this.get("content");
  10.     },
  11. })
阅读(1040) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~