首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将动态数组模型属性绑定到agilityjs对象的视图

问如何将动态数组模型属性绑定到agilityjs对象的视图
EN

Stack Overflow用户
提问于 2013-02-21 17:56:37
回答 1查看 171关注 0票数 1

我使用agilityjs作为客户端mvc框架。在这种情况下,我有一个div元素,它应该显示从服务器端检索的商家列表,并将其作为模型放在客户端。

代码语言:javascript
复制
var merchants = //retrieve merchants from server as json array;
var merchantsWrapper = $$({'merchants':merchants},'<div id="merchants-wrapper"></div>');

现在,我需要一种将merchants模型属性绑定到merchants-wrapper div的方法,其中该div应该显示所有商家。每个商家在另一个原型merchant agility object中定义的特定布局中显示为:

代码语言:javascript
复制
var merchantProto = $$({//model props}, '<div>rendering layout</div>');

我想要一种机制,通过这种机制,merchants array应该双向绑定到merchants-wrapper div,每个商家都应该根据merchant prootype进行渲染,并且在merchants属性通过排序或过滤得到更改的情况下,视图应该相应地更新。

我有一个想法,我可以在create事件上呈现它一次,并在change:merchants事件上做同样的事情,但我不想创建新的商家对象,所以应该有一种方法来清除merchants-wrapper div的内容,然后附加新的商家。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-21 19:00:04

嗯,我试过了,它对我很有效……

代码语言:javascript
复制
var merchants = //retrieve merchants from server as json array;
var merchantsWrapper = $$({'merchants':merchants},'<div id="merchants-wrapper"></div>',
    {
      'create':function(){
           var merchnts = [];
           for (each merchant in merchants){  //its pseudocode plz dnt mind the syntax
              var merchnt = $$(merchantProto,{//model props});
              merchnts.push(merchnt); 
           }
           this.model.set({'merchants':merchnts});
       },

       'change:merchants':function(){
           this.view.$("#merchants-wrapper").html("");
           for(each merchant in this.model.get('merchants')){
               this.append(merchant);
           }  
       }
);

我希望它能帮助其他人:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14999237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档