Tag: backbone.js

在Backbone.js视图中dynamic设置id和className

我正在学习和使用Backbone.js。 我有一个项目模型和相应的项目视图。 每个模型实例都具有item_class和item_id属性,我希望将其反映为相应视图的“id”和“class”属性。 什么是实现这一目标的正确方法? 例: var ItemModel = Backbone.Model.extend({ }); var item1 = new ItemModel({item_class: "nice", item_id: "id1"}); var item2 = new ItemModel({item_class: "sad", item_id: "id2"}); var ItemView = Backbone.View.extend({ }); 我应该如何执行这个观点,以便将这个观点的意见转化为: <div id="id1" class="nice"></div> <div id="id2" class="sad"> </div> 在我看到的大多数例子中,视图的el是一个无意义的包装元素,在这个元素里面必须手工编写“语义”代码。 var ItemView = Backbone.View.extend({ tagName: "div", // I know it's the default… render: function() { […]

为什么定义一个匿名函数并将jQuery作为parameter passing给它?

我正在通过backbone.js截屏video的优秀peepcode演示代码。 其中,骨干代码全部包含在传递jQuery对象的匿名函数中: (function($) { // Backbone code in here })(jQuery); 在我自己的主干代码中,我已经将所有的代码包装在了jQuery DOM'ready'事件中: $(function(){ // Backbone code in here }); 第一种方法的优点是什么? 这样做创build一个匿名函数,然后立即执行jQuery对象作为函数parameter passing,有效地确保$是jQuery对象。 这是唯一的一点 – 保证jQuery绑定到'$'还是有其他原因这样做?

组织jQuery / JavaScript代码的最佳方式(2013)

问题 这个答案之前已经回答了,但是已经老了,没有最新。 我在单个文件中有超过2000行代码,而且我们都知道这是不好的做法,特别是当我查看代码或添加新function时。 我想更好地组织我的代码,现在和未来。 我应该提到,我正在构build一个工具(不是一个简单的网站),其中有许多button,UI元素,拖动,下降,动作监听器/处理程序和函数在全球范围内,其中几个听众可以使用相同的function。 示例代码 $('#button1').on('click', function(e){ // Determined action. update_html(); }); … // Around 75 more of this function update_html(){ …. } … 更多示例代码 结论 我真的需要组织这个代码,以便最好的使用,而不是重复自己,并能够添加新的function,并更新旧的。 我将一个人在这个工作。 有些select器可以是100行代码,其他的是1.我看了一下require.js ,发现它有点重复性,实际上编写的代码比需要的多。 我愿意接受符合这个标准的任何可能的解决scheme,并且链接到资源/例子总是一个优点。 谢谢。

使用Backbone.js反向sorting

有了Backbone.js,我已经有了一个用比较函数设置的集合。 这是很好的sorting模型,但我想扭转顺序。 我怎样才能将模型按降序而不是升序sorting?

如何将parameter passing给视图

我有一系列的button,点击时会显示一个位于button正下方的popup式菜单。 我想将button的位置传递给视图。 我怎样才能做到这一点? ItemView = Backbone.View.extend({ tagName: 'li', events: { 'click': 'showMenu' }, initialize: function() { _.bindAll(this, 'render'); }, render: function() { return $(this.el).html(this.model.get('name')); }, showMenu: function() { var itemColl = new ItemColl(); new MenuView({collection: itemColl}); // how to pass the position of menu here? } });

Backbone.View“el”混淆

应如何处理视图? 它必须被设置,否则事件不会被触发(见这里 )。 但是,它应该是一个已经在网页上的元素? 在我的应用程序中,我将一个(jQuery模板)模板渲染到Fancybox中。 在这种情况下, el应该是什么?

backbone.js – 事件,知道点击了什么

在我的一个backbone.js视图类中,我有这样的: … events: { 'click ul#perpage span' : 'perpage' }, perpage: function() { // Access the text of the span that was clicked here // Something like: alert($(element).text()) }, … 因为我的每页标记可能有这样的: <ul id="perpage"> <li><span>5</span></li> <li><span>10</span></li> </ul> 那么我怎样才能find引起事件的元素的信息呢? 或在这种情况下,这是点击?

Ember.js或Backbone.js用于Restful后端

我已经知道,与backbone.js相比,ember.js是一个比较重的方法。 我读了很多关于两者的文章。 我问自己,作为rails rest后端的前端,哪个框架更容易工作。 对于backbone.js,我看到了不同的方法来调用rest后端。 对于余烬,似乎我必须包含更多的库,如“数据”或“资源”。 为什么有两个这样的库? 那么最好的select是什么? 也没有很多例子将前端连接到后端。 什么是后端rest的一个很好的工作示例调用这个: URI:../restapi/topics GET auth凭证:admin / secrect格式:json

Backbone.js:`extend`未定义?

刚开始使用Backbone.js。 简单地包括Backbone(开发/生产版本)会导致错误: Uncaught TypeError: Cannot call method 'extend' of undefined第128行Uncaught TypeError: Cannot call method 'extend' of undefined : // Attach all inheritable methods to the Model prototype _.extend(Backbone.Model.prototype, Backbone.Events,

Backbone.js获取并设置嵌套的对象属性

我有一个关于Backbone.js的get和set函数的简单问题。 1)使用下面的代码,如何直接获取或设置obj1.myAttribute1? 另一个问题: 2)在模型中,除了默认对象之外,我可以在哪里声明模型的其他属性,以便通过Backbone的get和set方法来访问它们? var MyModel = Backbone.Model.extend({ defaults: { obj1 : { "myAttribute1" : false, "myAttribute2" : true, } } }) var MyView = Backbone.View.extend({ myFunc: function(){ console.log(this.model.get("obj1")); //returns the obj1 object //but how do I get obj1.myAttribute1 directly so that it returns false? } }); 我知道我可以这样做: this.model.get("obj1").myAttribute1; 但这是一个好的做法吗?