Dojo:循环数据绑定

时间:2013-09-14 12:14:55

标签: angularjs dojo

我刚开始使用Dojo,我对所有模块的数量和质量印象深刻。然而,来自AngularJS,我发现Dojo's MVC的双向数据绑定有点缺乏。

是否真的没有办法订阅Dojo对象存储,在模板中有一个循环来遍历商店中的项目并在添加/删除项目时自动更新视图? example tutorial使用dojo/store/Observable来实现这个繁琐的逻辑:

results.observe(function(item, removedIndex, insertedIndex){
    // this will be called any time a item is added, removed, and updated
    if(removedIndex > -1){
        removeRow(removedIndex);
    }
    if(insertedIndex > -1){
        insertRow(item, insertedIndex);
    }
}, true);
function insertRow(item, i){ ... }
function removeRow(i){ ... }

在AngularJS中你会做这样的事情:

<li ng-repeat="item in results">
  <span>{{item.text}}</span>
</li>

那么我必须在Dojo的广泛小部件和模块集合以及AngularJS的双向数据绑定的直接模板之间做出选择吗?

1 个答案:

答案 0 :(得分:7)

首先,恭喜来到Dojo方面。是的AngularJS对于双向数据绑定非常方便,但您很快就会发现随着应用程序变得越来越复杂,需要强大(和众多)Dojo / Dijit / Dojox模块的帮助。

你是对的dojo / Observable目前通过Dojo中的商店提供绑定。它可以真正实现与AngularJS相同的功能。结帐dgrid examples进行演示。

为方便起见,已经制作了一个模块,用于以类似于Angular JS的格式进行绑定。它被称为dbind。它目前可以独立使用,很快就会集成到Dojo的核心中。您还应该检查dojox/mvc/Bind