我尝试了一些与类似问题相关的解决方案,但还是没有运气。除了嵌套(如下),json结构不是很复杂。
{ "name" : "John Smith",
"gender" : "male",
"address" : { "city" : "New York",
"state" : "NY"
}
}
我的目标是在erb文件中访问“城市”和“州”,如下所示。
<script id="person-template" type="text/template">
<div class="person">
<span class="name"><%%= get('name') %></span>
<span class="gender"><%%= get('gender') %></span>
<span class="city"><%%= get('city') %></span>
<span class="state"><%%= get('state') %></span>
</div>
</script>
现在我陷入了get('city')和get('state')的问题,不知道如何处理。非常感谢您的提示。
在模型定义中,您想覆盖parse方法以根据需要返回数据。
var YourModel = Backbone.Model.extend({
parse: function(data){
return {
name: data.name,
gender: data.gender,
city: data.address.city,
state: data.address.state
};
}
});
如果要从json显式设置模型值,那么您会遇到一个稍微不同的问题。您可以检索模型的地址部分并直接访问其属性:
person.get('address').city // this should contain the city value
警告:
如果执行此操作,则address
检索到的对象将是可变的,因此:
person.get('address')。city =“丹佛”
将在不触发任何更改事件的情况下更改address属性。因此,通常最好选择以下两种方法之一:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句