Ember.js 框架在不同html页面怎么传递数据,共享数据

JavaScript011

Ember.js 框架在不同html页面怎么传递数据,共享数据,第1张

Template通过Controller拿Model中的数据,model是不同页面共享的,Controller每个用户也只有一个实例。Emberjs是SPA,单一页面的应用程序,不存在不同的html页面,你看到的URL变化只不过是router模拟的而已。

Ember-Data不需要进行任何配置,就可以实现通过服务端提供的RESTful JSON API加载和保存记录以及它们的管理关系,这些操作都遵从于特定的惯例。

如果需要将Ember.js应用与现有的、未遵从惯例的JSON APIs进行集成,Ember-Data也进行了充分的设计,通过简单的配置就可以使用服务端返回的数据。

1 不要直接设计页面上的操作DOM功能

使用jQuery的时候, 经常是从设计一个页面开始,然后增加一些动态功能. 这是因为jQuery主要为了是从一个小处操作入手,然后逐渐增加更多操作.

但是在AngularJS中, 必须一开始就从功能的结构入手. 同时要时刻提醒不要按照jQuery的设计思维”这里有一段DOM要修改,完成一个X功能”, 而是直接先构想功能的结构,然后设计应用,最后在设计视图.

2 不要在AngularJS,过度使用jQuery

同样, 不要一开始就有一种”用jQuery做X,Y,Z功能” , 然后在结合AngularJS的 Model和Controller一起使用. 很多人从jQuery到AngularJS过渡时总觉得这样很棒, 但我却推荐如果一个刚接触AngularJS的新手不要使用jQuery,直到熟悉AngularJS并总有一种”AngularJS Way 思维”后再引入jQuery.

我见过很多的开发者在邮件组中费劲心思的讨论一个令人糊涂的复杂问题, 150或200行用jQuery的实现的插件 混合在一堆集合数据的回调的AngularJS代码中, 然后再用 $apply 让AngularJS渲染 , 这样是可以工作. 但问题是大多数场景下,这些jQuery 插件可以用AngularJS思维方式用很精练的代码重写, 同时瞬间一切都变为更直接更容易理解的代码.

所以, 做事情前首先要有”AngularJS的思维”, 如果你自己不太明白,最好的方法就是向社区求助, 如果还是没有找到方法,那么再使用jQuery的思维,但是不要把jQuery作为可依靠的拐杖, 否则很难精通AngularJS

3 时刻要从结构上思考问题

首先要理解SPA(single-page applications),单页面应用不是传统的一堆页面. 所以需要像后端开发者那样来思考前端开发. 同时需要考虑我们的应用如何达到模块化,并可扩展,还有提供可测试的组件.

那么如何做到”AngularJS 思维”, 对比jQuery, 有以下一些原则:

The view is the “official record” 视图是一种”官方的记录”(或理解为”表面的视角”)

用jQuery时,我们经常通过编程来改变视图. 例如用ul标签做一个下拉菜单