backbonejs学习之路二 collections篇

collections顾名思义就是集合咯,model的集合啦。是不是很简单。我还是将上篇的model对象结合着讲下去吧。

 var PhotoCollection = Backbone.Collection.extend({

//这个Photo就是上次讲的Photo的Model对象 

model: Photo
});
var photoCollection = new Backbone.Collection();

没办法,这个代码编辑器太蛋疼了。。。 这样一个Photo的collections就创建起来了。。。是不是很简单。当然了,跟Java等语言对collection提供的方法一样,同样有setter,getter,remove,add方法。这些个比较常用啦。

        var skiingEpicness = PhotoCollection.get(2); 

     var a =  new Backbone.Model({ title: 'my vacation'}),  
             b =  new Backbone.Model({ title: 'my holiday'});
     var photoCollection =  new PhotoCollection([a,b]);
    photoCollection.remove([a,b]);

 如何从服务器端获取Models呢?

我以jsp为例子

 

 servlet代码

 1      public  void doGet(HttpServletRequest request, HttpServletResponse response)
 2              throws ServletException, IOException {
 3 
 4         response.setContentType("text/html");
 5         PrintWriter out = response.getWriter();
 6         List<Photo> photos =  new ArrayList();
 7         Photo photo =  new Photo();
 8         photo.setSrc("photo1.png");
 9         photo.setTitle("photo1");
10         photos.add(photo);
11         photo.setSrc("photo2.png");
12         photo.setTitle("photo2");
13         photos.add(photo);
14         String result="[";
15          for( int i = 0;i<photos.size() ;++i){
16              if(i!=photos.size()-1)    
17                 result += "{\"src\":\""+photos.get(i).getSrc()+"\",\"title\":\""+photos.get(i).getTitle()+"\"},";
18              else
19                 result += "{\"src\":\""+photos.get(i).getSrc()+"\",\"title\":\""+photos.get(i).getTitle()+"\"}";
20         }
21         result+="]";
22         out.println(result);
23         out.flush();
24         out.close();

25     }

 

很简单,我就不多做解释了。下面是前台代码.

  1 //从服务器取

 2                  photoCollection.url = 'photos';
 3                 photoCollection.fetch({
 4                     success: function(model,response){
 5                             
 6                             console.log(model);
 7                              // 将接收到的model对象序列化为json字符串
 8                              console.log( JSON.stringify(model));
 9                              // 将json字符串转化成json对象
10                              console.log($.parseJSON(JSON.stringify(model))[0].src);
11                     },
12                     error: function(){
13                             console.log('error');
14                     }
15                 });

 好了,是不是很简单啊

转载于:https://www.cnblogs.com/itmangelihai/archive/2012/11/26/2789818.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是collections模块? collections是Python内置模块之一,提供了一些有用的集合类,可以用来扩展Python内置类型的功能。 2. collections模块中常用的几个类有哪些? 常用的集合类包括:Counter、deque、defaultdict、OrderedDict、namedtuple等。 3. Counter类有什么作用? Counter类可以帮助我们统计一个可迭代对象中各元素出现的次数,并返回一个字典。 4. deque类有什么特点? deque类是双向队列,可以从两端进行操作,支持高效地添加、删除和旋转元素等操作。 5. defaultdict类与普通字典有什么区别? defaultdict类与普通字典的区别在于,当我们访问一个不存在的键时,defaultdict会自动为其创建一个默认值,而不是抛出KeyError异常。 6. OrderedDict类有什么特点? OrderedDict类是有序字典,可以按照元素添加的顺序进行遍历,而普通字典是无序的。 7. namedtuple类有什么作用? namedtuple类可以用来创建一个具名元组,具有元组的不可变性和字典的可访问性和可读性。 8. 如何使用collections模块中的类? 我们可以使用类似于以下的方式导入collections模块中的类,并使用其提供的方法和属性。 ```python from collections import Counter, deque, defaultdict, OrderedDict, namedtuple # 使用Counter类 c = Counter('hello world') print(c) # 使用deque类 d = deque([1, 2, 3]) d.appendleft(0) d.rotate(1) print(d) # 使用defaultdict类 dd = defaultdict(int) dd['a'] += 1 print(dd) # 使用OrderedDict类 od = OrderedDict() od['b'] = 1 od['a'] = 2 print(od) # 使用namedtuple类 Point = namedtuple('Point', ['x', 'y']) p = Point(1, 2) print(p.x, p.y) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值