Tag: backbone.js

Backbone.js空数组属性

我遇到了Backbone.js模型的奇怪问题,其中数组成员显示为空白。 它看起来像这样: var Session = Backbone.Model.extend({ defaults: { // … widgets: [] }, addWidget: function (widget) { var widgets = this.get("widgets"); widgets.push(widget); this.trigger("change:widgets", this, widgets); }, // … // I have a method on the model to grabbing a member of the array getWidget: function (id) { console.log(this.attributes); console.log(this.attributes.widgets); // … } }); 然后我通过addWidget添加一个小部件。 当试图getWidget我得到的结果(在Chrome中)是这样的: […]

将表单数据序列化为JSON

我想在Backbone.js模型中做一个表单的预服务器validation。 要做到这一点,我需要从一个表单的用户input到可用的数据。 我发现了三种方法来做到这一点: var input = $("#inputId").val(); var input = $("form.login").serialize(); var input = $("form.login").serializeArray(); 不幸的是,没有一个提供我需要的良好的可扩展和可开发的JSON对象。 我已经浏览了Stack Overflow的几个问题,但是我发现只有一些额外的库。 不是Underscore.js ,当前的jQuery或Backbone.js提供了一个辅助方法吗? 我无法想象有没有要求这样的function。 HTML <form class="login"> <label for="_user_name">username:</label> <input type="text" id="_user_name" name="user[name]" value="dev.pus" /> <label for="_user_pass">password:</label> <input type="password" id="_user_pass" name="user[pass]" value="1234" /> <button type="submit">login</button> </form> JavaScript的 var formData = $("form.login").serializeObject(); console.log(formData); 输出 { "name": "dev.pus", "pass": "1234" […]

如何覆盖Backbone.sync?

我尝试了Backbone.js,我试图调用一个远程API,所以我需要能够覆盖Backbone.sync,因为我理解的文档 。 在文档本身中没有如何做到这一点的例子,似乎没有一个谷歌的骨干群…有人可以指出一个例子这样做吗?

“void 0”是什么意思?

可能重复: “javascript:void(0)”是什么意思? 通过Backbone.js源代码阅读,我看到这样的: validObj[attr] = void 0; 什么是void 0 ? 这里使用它的目的是什么?

JavaScript console.log导致错误:“主线程上的同步XMLHttpRequest已被弃用…”

我一直在向控制台添加日志,以检查不同variables的状态,而不使用Firefoxdebugging器。 但是,在我的main.js文件中添加了一个console.log许多地方,我收到下面的错误,而不是我可爱的小手写消息给自己: 主线程上的同步XMLHttpRequest由于对最终用户的体验有不利的影响而被弃用。 更多帮助http://xhr.spec.whatwg.org/ 什么替代品或包装console.log可以添加到我的代码使用,不会导致此错误? 我是否“做错了”?

迭代数组而不阻塞UI的最佳方式

我需要迭代一些大型数组,并将它们存储在来自API调用的骨干集合中。 什么是最好的方式做到这一点,而不使循环导致界面变得没有反应? ajax请求的返回也会因为返回的数据太大而阻塞。 我想我可以分解它,并使用setTimeout使它在较小的块中asynchronous运行,但有一个更简单的方法来做到这一点。 我认为一个networking工作者将是好的,但它需要改变保存在UI线程上的一些数据结构。 我已经尝试使用这个来做ajax调用,但是当它将数据返回到UI线程时,仍然有一段时间,接口没有响应。 提前致谢

<script type =“text / template”> … </ script>的解释

我偶然发现了一些我从未见过的东西。 在Backbone.js的例子TODO应用程序( Backbone TODO Example )的源代码中,他们把它们的模板放在一个<script type = "text/template"></script> ,其中包含的代码看上去像PHP以外的东西,但是带有JavaScript标签。 谁可以给我解释一下这个? 这是合法吗?

下划线模板引发variables未定义错误

我看了一些关于骨干js主题的video。 这是直接来自video的例子。 从2012年开始,所以我认为骨干规则/图书馆已经发生了变化,但是我不明白为什么现在不行。 在video中,这个人显示它运行在JS小提琴,但我不能得到它的工作。 (我已经在JS Fiddle中包含了必要的库,例如下划线,主干和jQuery) var V = Backbone.View.extend({ el:'body', render: function () { var data = { lat: -27, lon: 153 }; this.$el.html(_.template('<%= lat %> <%= lon%>', data)); return this; } }); var v = new V(); v.render(); <script src="../../../underscore-min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="http://backbonejs.org/backbone-min.js"></script>