我有一个常见的用例。我有一个CMS,它提供部分数据和一个Web服务,补充这些数据来完成整个过程。适用于jQuery的是将所有部分数据转储到保留区域,当Web服务响应时,填写其余数据并将其移动到正确的位置。
我知道这与How do I move a view around the DOM with angular.js?类似,但我认为这是一个不同的用例,我没有看到答案。
基本上,90%的DOM预先加载,Angular可以考虑静态数据。但是,在Web服务响应之前,我们不知道属于哪里。在服务响应后我们如何“排序”DOM?有限数量的LI - Web服务是这些LI的状态,而不是用于迭代和创建它们的工具。
我的DOM看起来像:
<ul id="good">
</ul>
<ul id="bad">
</ul>
<ul id="temporary">
<li id="bob"><p>Lorem ipsum dolar sit amet</p> DOB {{bob.dob}}</li>
<li id="susan"><div>Roses are red violets are blue</div>Name: Susan, DOB: {{susan.dob}}</li>
<li id="paul">Name: Paul, DOB: {{paul.dob}}</li>
<ul>
我知道如果一切都来自服务,它就像每个UL上的ng-repeat一样简单,但是大部分模板都是静态的,但每个LI都不同,而创建静态但不同内容的数据是不适用于网络服务。就是这样。它无法改变。
网络服务将回复如下内容:
{
"good": [{
"id": "paul",
"dob": "01/01/2014"
}, {
"id": "susan",
"dob": "05/01/2014"
}],
"bad": [{
"id": "bob",
"dob": "12/25/2013"
}]
}
因此,那些处于“好”类别的人需要转向“好”的UL,那些处于“坏”类别的人需要转向“坏”的UL。在jQuery中,这只是:
$("#bob").appendTo("#bad");
DOM比上面的要复杂得多,所以希望通过一些标识符取一个div并将整个东西移到另一个容器中。
我们目前的做法是在每个UL中使用每个LI并使用ng-if根据类别显示/隐藏它,但这看起来像是一个猎枪方法,更优雅的东西会很有用。
这甚至可能吗?我们无法更新模型,因为模型没有足够的信息来创建视图。
答案 0 :(得分:1)