Backbone.js 收集抛出错误

2024-04-21

我(作为初学者)正在制作一个小型骨干函数来附加我的链接,为此我使用要分配模型的集合,

但集合抛出错误..任何人都可以纠正我的代码吗?

$(function(){
    var Model = new Backbone.Model({
        data:[
                {name:'Yahoo',href:'http://www.yahoo.com'},
                {name:'Gmail',href:'http://www.gmail.com'},
                {name:'Bing',href:'http://www.bing.com'}
              ]    
    });

    var Collection = new Backbone.Collection.extend({
        model:Model // is this not correct way to do?
    });

    var View = Backbone.View.extend({
        el:'#container',
        events:{
            'click button':'render'
            },
        initialize:function(){
            this.collection = new Collection(); //throw the error!
            this.template = $('#temp').children();
        },
        render:function(){
            var data = this.collection.get('data');
            for(i=0;i<data.length;i++){
                var li = this.template.clone().find('a')
                .attr('href',data[i].href)
                .text(data[i].name).end();
                this.$el.find('ul').append(li);
            }
        }
    });

    var myLink = new View();

})

模型用于存储和管理各个数据块。在您的情况下,这将是单个名称/目录对。通常你使用Backbone.Model.extend使用所有特定于模型的方法和属性创建模型“类”,然后使用以下命令创建该模型的实例new或将该模型“类”设置为集合的model财产 http://backbonejs.org/#Collection-model以便集合可以创建模型的新实例。

你的模型应该看起来更像这样:

var Model = Backbone.Model.extend({
    defaults: {
        name: '',
        href: ''
    }
});

请注意,没有new在那里,我们只是创建一个“类”来作为模型实例的基础。然后我们将模型连接到一个集合(再次使用extend没有new):

var Collection = Backbone.Collection.extend({
    model: Model
});

现在你可以创建集合的实例 http://backbonejs.org/#Collection-constructor并将模型的数据数组交给它:

var links = new Collection([
    { name: 'Yahoo', href: 'http://www.yahoo.com' },
    { name: 'Gmail', href: 'http://www.gmail.com' },
    { name: 'Bing',  href: 'http://www.bing.com'  }
]);

您通常会将集合传递给视图,而不是让视图实例化集合;骨干网会自动 http://backbonejs.org/#View-constructor set this.collection如果你说new SomeView({ collection: some_collection })所以你可以:

var View = Backbone.View.extend({
    //...
    initialize: function() {
        this.template = $('#temp').children();
    },

and say new View({ collection: links })并通过访问集合this.collection视图中的其他地方。

集合是多个模型的集合(有点像数组),并且它将具有混合了各种有用的下划线方法 http://backbonejs.org/#Collection-Underscore-Methods所以你可以像这样迭代集合:

render: function() {
    this.collection.each(function(link) {
        var li = this.template.clone().find('a').attr('href', link.get('href')).text(link.get('name'));
        this.$('ul').append(li);
    }, this);
}

还要注意使用get http://backbonejs.org/#Model-get访问模型属性,模型属性和对象属性是不同的东西。您还可以使用toJSON http://backbonejs.org/#Model-toJSON一次展平所有数据。决赛this论证each http://underscorejs.org/#each makes this在回调视图中。主干网已经提供了this.$el.find()视图中的别名this.$() http://backbonejs.org/#View-dollar方法,所以我也切换到该方法。

这是一个简化的演示:http://jsfiddle.net/ambigously/WSqLM/ http://jsfiddle.net/ambiguous/WSqLM/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Backbone.js 收集抛出错误 的相关文章

  • 下划线模板抛出变量未定义错误

    我看过一些关于主干js主题的视频 这是直接来自视频的示例 这是从 2012 年开始的 所以我认为主干规则 库已经改变 但我不明白为什么这目前不起作用 在视频中 该人展示了它在 JS Fiddle 中运行 但我无法让它工作 我已经在 J S
  • Backbone JS 模型和集合 URL

    如果我有一个名为 Book 的模型和一个名为 Library 的集合 定义如下 Book app Book Backbone Model extend defaults title No title author Unknown Libra
  • Backbone 中仅限客户端的属性

    我有一个相当通用的模型和该模型的集合 见下文 我正在将其作为一系列视图的基础 在几个视图上 选择其中一个模型会生成操作 通过 selected 属性 并且我需要能够仅在客户端跟踪选择 然而 在 Backbone 中似乎没有干净的方法来做到这
  • Javascript MVC 框架的目的[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想知道 Javascript MVC 框架 例如 Backbone js 和 Spine js 的用途 作为一名热心 经验丰富的 Ruby o
  • Backbone - 从 API 获取 JSON 数据

    这几天我在玩Backbone 我想从 Twitter 搜索 API 接收一些数据 但我真的不明白它是如何工作的 这是我的代码 function Tweet Backbone Model extend Tweets Backbone Coll
  • 在Javascript中,这个下划线是什么意思?

    var Gallery Backbone Controller extend index null photos null album null subalbums null subphotos null data null photosv
  • Coffee HAML 中的部分内容 (.hamlc)

    我在 Rails 后端使用backbone js哈姆咖啡 https github com netzpirat haml coffee 它是由haml 咖啡 资产 https github com netzpirat haml coffee
  • 保护我的 Node.js 应用程序的 REST API 安全?

    我可以在 REST API 上获得一些帮助 我正在编写一个 Node js 应用程序 它使用 Express MongoDB 并在客户端使用 Backbone js 在过去的两天里 我一直在努力解决所有这些问题 但运气不佳 我已经查过了 保
  • 重新渲染子视图后,主干事件会多次触发

    我们有一个由侧边栏和几个子视图组成的主干视图 为简单起见 我们决定让侧边栏和子视图由单个视图管理render功能 但是 那click edit单击侧边栏项目之一后 事件似乎会多次触发 例如 如果我从 常规 开始并单击 edit then h
  • 避免从主干视图重新渲染图像和其他内容

    当我重新渲染主干视图时 有什么好方法可以跳过重新渲染图像和谷歌地图等内容 每次重新渲染视图时 我的照片和地图视图都会闪烁得很厉害 这种情况很常见 特别是对于图像 模板引擎从头开始布局布局 这会导致图像标记再次从服务器或从缓存中获取位图 当然
  • Backbone.View“el”混淆

    视图应该如何el被处理 必须设置它 否则事件不会触发 请参阅here https stackoverflow com questions 4909564 backbone js why isnt this event bound 但它应该是
  • 主干表视图消耗行视图 - 如何构造?

    我有一组模型希望在表格视图中呈现 每个模型应由表中的一行表示 并且该行应使用模板生成 我应该能够将事件处理程序附加到该行 例如单击 在事件发生时发出有关与该行关联的模型的一些特定信息 我见过类似的事情的一种常见方法是将每一行分解到它自己的视
  • 使用主干渲染引导模式

    我认为代码可以更好地解释我的问题 风景 App Views ErrorModal Backbone View extend template window template errorModal render function this e
  • 渐进增强 - Node.js、Backbone.js

    Node js 服务器有两个角色 前缀为 api 的路由上的 RESTFul API 在其他路线上呈现网站页面 plans features terms 目前 我的所有页面都会呈现一个 正在加载页面 并与 Backbone router 启
  • 与 jQuery 配合使用的backbone.js 替代品?

    有没有像backbone js这样的东西的替代品 它为你的前端javascript提供了一些框架 结构 但没有任何不需要的依赖项 并且与jQuery更紧密地结合在一起 您需要一个易于使用的 MVC 框架吗 因为Sammy js http s
  • 覆盖主干“设置”方法

    我想重写骨干集方法 以便每当我为骨干模型设置一个值时 都会调用在该属性上注册的回调 而无需检查该属性的相同先前值 var model Backbone Model extend defaults prop1 true var view Ba
  • 覆盖骨干模型更改事件

    我认为我想做的事情很简单 我只是不知道该怎么做 当我的模型属性之一发生更改以便将一些数据传递给事件处理程序时 无论更改是值的增加还是减少 我想触发我自己的事件 基本上我希望我的处理程序在视图中执行此操作 handler function i
  • backbone.js - 如何在视图之间进行通信?

    我有一个带有多个backbone js 视图的单页Web 应用程序 观点有时必须相互沟通 两个例子 当有两种方式视图同时以不同方式呈现集合时 并且对一个视图中的项目的点击必须转发到另一个视图 当用户转换到流程的下一个阶段时 第一个视图将数据
  • 获取集合时的 ​​Backbone.js 进度条

    我想在用新内容更新应用程序时显示进度条 我想最好的办法是在集合上调用 fetch 时执行此操作 我获取的内容主要是图像 视频海报等 但我只获取链接 而不是 base64 字符串或大的东西 我想做的是在获取图像链接时用进度条覆盖屏幕 渲染视图
  • 主干关系事件未触发?

    class TheModel extends Backbone RelationalModel relations type Backbone HasMany key subModels relatedModel SubModel coll

随机推荐

  • 如何避免在 git-add 时指定绝对文件路径

    Using git add一旦文件路径变得很长 命令就会变得乏味 例如git add src test com abc product server datasource manager aats DSManger java是否可以绕过指定
  • 将参数从 .aspx.cs 传递到 .ashx

    我想将字符串传递到 ashx 页面 通常我会通过在 aspx 页面中设置参数来完成此操作 例如 Loader TreeLoader ashx passedVariable hello 但我想在 aspx cs 端以编程方式执行此操作 因为该
  • 引导程序中导航和巨型屏幕之间的差距

    对于我的一生 我无法确定我的导航和大屏幕之间的空白来自哪里 我已经玩过很多变量 但无法让它消失 我在这里做了一个cssdeckhttp cssdeck com labs u6ws0ozl http cssdeck com labs u6ws
  • 用于屏幕文本的 OCR(光学字符识别)

    我正在尝试创建一个软件 通过捕获屏幕截图来自动化 PC 然后使用 OCR 光学字符识别 来查找要单击的特定按钮 例如 我已经有了鼠标和键盘控制部分 但现在 我需要 OCR 来处理屏幕截图 我发现 Tesseract OCR 似乎不能很好地处
  • 为什么 Django 中的 Google-Auth(Google Identity) 弹出窗口空白?

    我的 Google 身份验证卡在弹出身份验证流程中 一键式身份验证工作正常 但按钮不行 div div 我点击它 弹出窗口打开 但它仍然空白 没有任何进展
  • SDWebImage 在 swift 中崩溃

    看来如果我在已完成的块中使用 self 它就会崩溃 self imageView sd setImageWithURL MYIMAGEURL placeholderImage nil options SDWebImageOptions Re
  • 如何让主键从1000开始?

    create table tablename id integer unsigned not null AUTO INCREMENT primary key id 我需要主键从1000开始 我正在使用MySQL 如果您的表已经创建为自动增量
  • 左特征向量在 scipy 中没有给出正确的(马尔可夫)平稳概率

    给定以下马尔可夫矩阵 import numpy scipy linalg A numpy array 0 9 0 1 0 15 0 85 平稳概率存在且等于 6 4 通过取矩阵的大幂可以很容易地验证这一点 B A copy for in x
  • Z3:检查模型是否唯一

    Z3 有没有办法证明 表明给定模型是唯一的并且不存在其他解决方案 一个小例子来演示 declare const a1 Int declare const a2 Int declare const a3 Int declare const b
  • asp.net mvc 镜像路径和虚拟目录

    我知道这必须是重复的 但我一直在翻阅大量有关此的信息 但无法使其发挥作用 我正在尝试让一个网站在客户端的服务器上运行 并且他们将该网站安装在虚拟目录中 我本地没有这个设置 所以我在这里盲目飞行 我正在尝试建立一条通往图像的路径 用于 Fac
  • 我应该如何处理Java中非常大的数组?

    我有一个算法 当前分配一个非常大的双精度数组 它经常更新和搜索 数组的大小为 N 2 2 其中 N 是算法运行的行数 我还必须保留整个内容的副本 以用于与算法周围的应用程序相关的目的 当然 这对我的算法可以处理的行数施加了限制 因为我需要应
  • 用于单个测试的 Rails/RSpec 切换缓存

    因此 在我的应用程序中 我可以禁用所有测试的缓存 这将是理想的 但显然有许多遗留测试依赖于缓存的功能 有没有办法为单个 RSpec 测试启用 Rails 缓存 就像是 before each do cache setting Rails c
  • 如何让 Jenkins 在 Maven 2 构建上 --fail-fast?

    我正在尝试使用 Jenkins 构建一个多模块 Maven 项目 当我在命令行使用相同的环境 variables settings xml user 正如 Jenkins 所做的那样 测试失败会导致构建立即失败 Failed tests t
  • 如何从 SQL Server 表中恢复已删除的行?

    我不小心对 WHERE 错误的表运行了 DELETE 命令 条款 我正在使用 SQL Server 2005 有没有办法可以帮助我恢复丢失的数据 可以使用 Apex 恢复工具 我已成功恢复我不小心删除的表行 如果您下载试用版 它将仅恢复第
  • Swagger UI 未在 index.html 页面上显示任何内容

    已更新以下解决方案 感谢下面 Ron 的建议 我稍微修改了我的设置以使用 BeanConfig 而不是 SwaggerConfig 并使其正常工作 为了做到这一点 我必须修改 servlet 并且 这就是我认为缺少的部分 将 BeanCon
  • Spring querydsl 谓词:关系支持

    我有一个与联系人具有一对一关系的客户实体 如果我想获取客户名称 我需要写 client getContact getLastName 我使用 querydsl lib 来过滤 Spring Boot 应用程序中的客户端列表 api clie
  • 将 PNG 从预乘 alpha 转换为传统的 alpha 透明度?

    我在处理一些具有预乘 Alpha 的 PNG 格式的源图像时遇到了很大的困难 因为大多数工具根本无法正确支持它 有没有什么可以将 最佳猜测 转换为更传统的PNG 如果 预乘 alpha 指的是 iOS 的 PNG 衍生品 那么您可以将它们转
  • 如何统计 Redis 流中未读或已确认的消息?

    使用 Redis 5 0 3 假设我们创建一个名为streamy和一个消费群体consumers XGROUP CREATE streamy consumers MKSTREAM 然后向其中添加一些消息 XADD streamy messa
  • 当轴数已知时,X.ravel() 和 X.reshape(s0*s1*s2) 之间的差异

    看到这个answer https stackoverflow com a 28930580 3904031我想知道X的展平视图的创建是否本质上是相同的 只要我知道X中的轴数是3 A X ravel s0 s1 s2 X shape B X
  • Backbone.js 收集抛出错误

    我 作为初学者 正在制作一个小型骨干函数来附加我的链接 为此我使用要分配模型的集合 但集合抛出错误 任何人都可以纠正我的代码吗 function var Model new Backbone Model data name Yahoo hr