以标记值为条件,使用AngularJS生成和更新表
Generating and updating table with AngularJS conditioned on tag value
我是AngularJS的新手,找不到这个场景的答案。
基本上,我试图生成一个有n个tbody的表(实际上是.行,但使用tbody,因为中继器使用angularjs 1.0.7与tbody配合得最好)
每一行都是根据我拥有的项目数量生成的。
最初加载页面时,没有行/tbody。我将通过websocket连接到后端并推送数据。对于每次推送,如果不存在具有相同密钥的行/tbody,并且密钥来自后端,我希望添加一个行/tbody。如果键确实存在,我希望更新现有的表行/tbody。
为了更具体,这里有一些我正在使用的代码:
<tbody ng-repeat="quote in model.messages.message">
<tr>
<td bgcolor="#FFFFFF" valign="bottom" colspan="5"><font size="2">{{quote.value1}}</font></td>
</tr>
<tr>
<td bgcolor="#FFFFFF" align="right"><font size="2">{{quote.value2}}</font></td>
<td bgcolor="#FFFFFF" align="right"><font size="2">{{quote.value3}}</font></td>
</tr>
</tbody></table>
此处的"键"为quote.value1。
这一切都取决于从服务器返回的数据的结构。代替quote.value1等,为什么不制作一个值数组,使您的JSON看起来像这样:
假设modal.messages=
[{
"id":1,
"values":
[{"vid":1, "m":"This is a message value"},
{"vid":2, "m":"THis is a second message"}]},
{"id":2, "values":[...]}, ...]
然后每条消息都有一个值数组。
因此,你可以使用ng重复这样的值:
<tbody ng-repeat="quote in model.messages">
<tr ng-repeat ="message in quote.values">
<td >{{message.m}}</td>
</tr>
</tbody>
现在,检索到的值可以添加到数据的适当区域,视图将正确更新。
在控制器中,您可以将新数据推送到数组或更新现有值。假设您接收的数据如下:
data = {"vid":3, "m": "Another great message from the server"};
控制器中的工作是确定这是新消息还是对现有消息的更新。一个新的很容易:
your_array.push(data);
只需将其附加到数组中,视图就会更新。我可以向你展示我如何在不使用websocket的情况下做类似的事情。
$scope.getUpdateData = function(quote){
$http.post('YOUR_SERVER_URL')
.success(function (data) {
quote.values.push(data); //if it is new
//check if the id exist and simply replace otherwise.
});
}
相关文章:
- 如何在范围值更改时使用 angularJs 更新 UI
- 使用AngularJS更新cookie
- AngularJS更新控制器变量并再次渲染视图
- Angularjs 更新 setTimeout 中的范围变量不起作用
- 无法使用AngularJS更新变量
- 使用AngularJS更新下拉列表
- AngularJs 更新引导进度条
- AngularJS:更新资源的正确方法是什么
- AngularJS更新$scope变量并输出到pre
- 如何使用AngularJS更新/编辑数据库中的数据
- AngularJS更新ng-model的值以设置默认值
- AngularJs:更新事件$scope
- 使用 AngularJS 更新服务器
- 使用 AngularJS 更新表中的值的最佳实践
- Angularjs - 更新同一控制器的多个实例
- AngularJS更新范围$q
- angularJS更新第二数组值的数组基
- 尝试使用Firebase facebookconnect和AngularJS更新范围变量时出现问题
- 点击AngularJS更新Firebase中的字段
- 使用AngularJS更新Youtube上的400个错误请求