开心一笑
老师问小强:“圆明园是谁给烧掉的?”
小强委屈地说:“老师, 不、不、不是我烧的。”
“什么?你、你、你,把你爸叫来!”老师生气地说。
放学后,小强的爸爸来了,老师对他说:“今天我问你儿子圆明园是谁烧的,他居然说不是他烧的,这太可笑了吧?”
小强的爸爸眨着眼,犹豫地说:“老师,真不是他烧的,我们孩子不会做这事的。要不,我们……赔,行吗?”
提出问题
Ember中的PromiseArray如何使用???
解决问题
PromiseArray是兼有Array和promise功能的对象,当promise被解析时,
返回的数据将被设置到PromiseArray的content属性中,
这将很容易创建数据绑定,当被解析的promise被更新时
例一:官方文档的promiseArray用法
var promiseArray = DS.PromiseArray.create({
//获取数据,真实项目是向后端请求数据
promise: $.getJSON('/some/remote/data.json')
});
promiseArray.get('length'); // 0
//数据返回后的回调函数
promiseArray.then(function() {
promiseArray.get('length'); // 100
});
例二:真实项目中的用法
//获取我参与的项目
joinedProjects: Ember.computed('refresh', function () {
return DS.PromiseArray.create({
//向后端请求数据
promise: ajax.get('pcsProjects/findMyJoinProjects').then((data)=> {
//返回数据给joinedProjects
return data.pcsProjects;
})
});
}),
例三:
var ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin);
var proxy = ObjectPromiseProxy.create({
promise: $.getJSON('/some/remote/data.json')
});
//then有两个参数,一个是调用后端时,返回数据调用方法,另一个是请求
//不到数据是调用方法
proxy.then(function(json){
// the json
}, function(reason) {
// the reason why you have no json
});
例四:proxy的生命周期的一些属性
脑补下英语:
Pending 直到,在等待…期间;
Settled 解决; 固定; 稳定;
Rejected 拒绝
Fulfilled 全部填满
proxy.get('isPending') //=> true
proxy.get('isSettled') //=> false
proxy.get('isRejected') //=> false
proxy.get('isFulfilled') //=> false
当请求数据完成时,纪录proxy生命周期的属性变为:
proxy.get('isPending') //=> false
proxy.get('isSettled') //=> true
proxy.get('isRejected') //=> false
proxy.get('isFulfilled') //=> true
读书感悟
来自《有些问题,不是脸和身材》
挑选出行衣物时,重点有三:舒适、质量佳、有型,这样走遍天下,都不用怕因穿得邋邋遢遢而错失艳遇了。
我们要知道,什么衣服最适合带去旅行装哔——,
首先,它肯定要舒适,再怎么说这也是旅行啊,
总不能穿得紧绷绷硬邦邦吧?其次,它的质量要够好,
小小的箱子只能带那么几件衣服,当然要质量好,否则突然坏了怎么办;
最后,就是要款式经典不俗气,要像一个体面的游客,能够照亮当地,
让居民投“噢,一个漂亮的外乡人”的眼光的那种,而不是“哪个旮旯来的人又来俺们村搞破坏”。