Ember:如何更新控制器中JSON对象数组中的单个字段
Ember : How to update a single field in an array of JSON objects in a controller?
如何在控制器中将爱因斯坦的分数更新为100 ?
在控制器中,我有一个JSON对象数组,如:items = [
{title:"John", score:24},
{title:"Einstein", score:2},
{title:"Mary", score:19}
];
在模板中使用如下组件呈现:
{{#each items as |item|}}
{{some-child-component scoreVal=item.score}}
{{/each}}
我该怎么做才能把爱因斯坦的分数更新为100分?我只是想改变这个特定的字段,让它在应用程序中反映出来。
我想避免用一个新的(几乎相同的)替换整个数组,因为这会导致刷新模板中的所有组件。
[FAILED] I tried using:
var allItems = this.get('items');
allItems[1]['score'] = 100; //ERROR
也 this.set('items[1][score]',100); //ERROR
我发现了烬的方法:
var elem = items.objectAt(1);
Ember.set(elem, 'score', 100);
您可以使用.findBy
来查找记录并给它一个新值。
如果你不使用烬数据为你的数据层,那么我也会使数组的对象烬对象,所以你可以使用.get
和.set
来更新属性。
这是一个完整的JSBin,你要完成的是什么
你到底想把分数设置为100?
如果你的物品是灰烬物品
items = [
{title:"John", score:24},
{title:"Einstein", score:2},
{title:"Mary", score:19}
].map(function(item) { return Ember.Object.create(item) });
您将能够使用setter作为items[1].set('score', 100)
相关文章:
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)