- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用带有主干的 MongoDb/Lithium php 框架。
我希望我所有的模型 ID 和 idAttribute(s) 与我的数据库文档 ID 相同(即“_id”/mongoid)
问题:
这是模型类:
window.app.IHoliday = Backbone.Model.extend({
urlRoot: HOLIDAY_URL,
idAttribute: '_id',
id: '_id',
// Default attributes for the holiday.
defaults: {
},
initialize: function(props) {
},
});
这是 View 代码,在模型上调用 fetch。文档的 mongoid 作为隐藏输入 (holiday_id) 传递到此页面。
console.log('Holiday URL:' + HOLIDAY_URL );
var Holiday = new window.app.IHoliday({ _id: holiday_id });
console.log('HOLIDAY before fetch: \n' + JSON.stringify(Holiday));
Holiday.fetch(
{
success: function(){
//alert('Holiday fetched:' + JSON.stringify(Holiday));
console.log('HOLIDAY Fetched: \n' + JSON.stringify(Holiday));
console.log('Holiday name:' + Holiday.get('holiday_name'));
console.log('Holiday id:' + Holiday.id);
console.log('Holiday idAttribute:' + Holiday.idAttribute);
console.log('Holiday idAttribute:' + Holiday.get('idAttribute'));
}
});
Firebug 控制台的输出:
HOLIDAY before fetch:{"_id":"50bcaab24fbe3dfc1700000b"}
GET http://localhost:8080/li3/holidays/load/50bcaab24fbe3dfc1700000b 200 OK
HOLIDAY Fetched:
{"_id":"50bcaab24fbe3dfc1700000b","holiday_name":"eeeeeeeeeeeeeeeee","description":"","star_rating":"3","holiday_type":"family","rooms":"1","adults":"2","child":"0","emails":""}
Holiday name:eeeeeeeeeeeeeeeee
Holiday id:50bcaab24fbe3dfc1700000b
Holiday idAttribute:_id
Holiday idAttribute:undefined
编辑:以下工作......在模型类中注释掉 id 条目之后:
window.app.IHoliday = Backbone.Model.extend({
urlRoot: HOLIDAY_URL,
//id: '_id',
idAttribute: '_id',
// Default attributes for the holiday.
defaults: {
},
initialize: function(props) {
},
最佳答案
来自主干 docs :
If you're directly communicating with a backend (CouchDB, MongoDB) that uses a different unique key, you may set a Model's idAttribute to transparently map from that key to id.
所以 idAttribute
只是告诉您的模型类,任何与 idAttribute
的值具有相同键的属性也应该复制到 id
。在主干source ,这是按如下方式完成的:
if (this.idAttribute in attrs) this.id = attrs[this.idAttribute];
基本上,如果您尝试设置与 idaAttribute
同名的属性,该值也会复制到 id
。
所以回答你的问题:idAttribute
不存储 id
,但它存储包含 id
的属性的名称
关于php - 如何设置Backbone Model.idAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13684607/
在集合的上下文中,我想根据包含模型数据的某些对象检索模型实例,但我不想对 idAttribute 进行硬编码。 当你已经有一个模型实例时,Backbone 使事情变得简单,你可以访问它的 .id 属性
我认为我的问题出在解析函数中: /*global define */ define([ 'jquery', 'underscore', 'backbone', 'mod
我正在使用 mongoLab,模型 ID 如下所示 "_id": { "$oid": "50f9a0f5e4b007f27f766cf3" }, 我正在使用 idAttribute 将模型 ID
我的模型结构如下: model = { distance: 12.05, widget: { id: 1, creationDate: '12/01/2
我的 Backbone 模型的idAttribute可以是任何东西(Backbone的默认值是“id”)。我想在将模型插入 Backbone 集合之前检查该集合是否已包含具有相同 idAttribut
我正在使用主干集合从服务器获取一个 mongodb 集合。由于 ID 存储为“_id”,我使用 idAttribute 将其映射到“_id”。 (function(){ var PlaceMode
我正在使用带有主干的 MongoDb/Lithium php 框架。 我希望我所有的模型 ID 和 idAttribute(s) 与我的数据库文档 ID 相同(即“_id”/mongoid) 问题:
我从 API 创建新模型,API 有一个 idAttribute ID。这是我的模型: class Video extends Backbone.Model idAttribute: 'ID'
我有一个集合,它指定一个模型,该模型本身有一个 idAttribute 集,因为我的后端使用主键的自定义字段。代码是这样的: var SearchItemModel = Backbone.Model.
我在访问模型中的 ID 时遇到问题。我知道模型可以有一个我定义的属性 idAttribute 。我的问题是我想使用模型的 id 进行查询,但我不知道如何操作。我已阅读 bookshelfJS 文档,但
我刚刚将 idAttribute: '_id' 添加到 BackboneJS 应用程序中的某些模型,以便在服务器端与 MongoDB 一起使用。起初,这按预期工作,稍后在 View 中查看模型时,th
我已将 idAttribute 行添加到此代码中,希望它允许我为我的 id 字段指定一个备用名称: bookshelf.ApiUser = Bookshelf.Model.extend({ t
我已经研究 Backbone.js 几个星期了,我对将 View 与模型、路由器和集合一起使用感到很自在。 我还有一些很大的差距: id、cid、idAttribute之间有什么联系?它们如何相互影响
我正在尝试更新主干模型,服务器端是 asp.net mvc 4。我得到: "System.ArgumentException: An item with the same key has alread
我在尝试将多个模型从服务器添加到集合时遇到错误。它抛出错误: Uncaught TypeError: Cannot read property 'idAttribute' of undefined 这
我是 appcelerator 的新手。在遵循快速入门指南的同时,我无法在 iOS 模拟器上生成构建,即使在将代码完全复制粘贴到所需模型和 Controller 之后也是如此。 控制台给我以下信息:
错误如下: http://puu.sh/lXzja/f773fb6c9a.png 我的用户模型的主键是用户名。我的路线的主键是路线名称。我的 api 根据 jsonapi.org 规范返回 data:
我正在努力学习 Backbone.js 它可以获取、放置和删除单个模型。但是,当我创建一个集合时,fetch 方法给出了这个错误:未捕获的类型错误:无法读取未定义的属性“idAttribute”(ba
我有两个模型(用户和任务),它们是 Backbone.RelationalModel 的实例. 这两个模型的关系如下: // Task model var Task = Backbone.Re
我是一名优秀的程序员,十分优秀!