小编Chr*_*s M的帖子

什么是双向绑定?

我已经阅读了很多,Backbone没有做双向绑定,但我并不完全理解这个概念.

有人能给我一个例子,说明双向绑定如何在MVC代码库中运行,以及它如何与Backbone无关?

javascript data-binding backbone.js

160
推荐指数
4
解决办法
10万
查看次数

如何在模型提取时将1转换为true或0转换为false

我有一个模型,它使用来自mysql数据库的JSON响应进行设置.模型数据使用true或false设置为数据库中的boolean/tinyint字段,该字段使用10.

在我看来,我有一个绑定,检查带有下划线的布尔值_.isBoolean.当然,当我的模型接收数据时,它被设置为1或者0不是true或false,并且_.isBoolean检查失败.

无论如何要么正确地让我的来自mysql的JSON响应是一个布尔值true或false值而不是1或者0,或者最好是有一种方法让我的模型在获取时(在视图呈现之前)自我更新true或者false基于它的1或0属性?

例如我的模型的数据看起来就像{"isChecked":"1"}我需要的那样{"isChecked":true}

非常感谢你提出的任何建议!

javascript jquery backbone.js

69
推荐指数
4
解决办法
8万
查看次数

如果没有ajax呼叫,这个体育自动收报机的分数如何更新?

我之前在http://www.cbssports.com/nfl/scoreboard上查看分数,在检查代码后,我无法弄清楚他们如何更新分数.

我没有看到任何ajax调用,并且游戏似乎没有包含在iframe等中.

任何人都可以向我解释这是如何工作的?

javascript ajax javascript-events

7
推荐指数
1
解决办法
634
查看次数

为什么在将函数作为参数传递时我必须省略括号?

我试图解决为什么下面的代码在包含括号时导致堆栈溢出的原因,但是当它们被省略时则不会.

我将函数本身作为setTimeout的参数调用,它在没有parantheses的情况下工作,但当我添加它们时当然会失败.在函数之后添加()是我的直觉.只希望有人可以为我解决这个问题.parans什么时候可选而不是?

情况1:

var a = 1;

function foo() {
    a++;
    document.write(a);
    setTimeout(foo(), 2000)
}? 
// RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)

案例2:

var a = 1;

function foo() {
    a++;
    document.write(a);
    setTimeout(foo, 2000)
}?
// parens are omitted on foo function and it works. 
Run Code Online (Sandbox Code Playgroud)

javascript

6
推荐指数
2
解决办法
1614
查看次数

为什么"foo = foo || {};" 不行?

我正在我的浏览器控制台中试验一些javascript,并且不确定为什么这不起作用.控制台和jsfiddle中的以下代码在我的尝试中抛出错误:Uncaught ReferenceError:foo未定义

foo = foo || {}; 
Run Code Online (Sandbox Code Playgroud)

我解释这个的方式是:如果全局对象的foo(在这种情况下是窗口)不存在,则将其创建为空对象.

或者,代码window.foo = window.foo || {}; 像我期望的那样工作.事先为foo分配值foo = 'bar'会使原始语句在之后运行时也能正常工作.

javascript

4
推荐指数
1
解决办法
144
查看次数

骨干中自定义事件的优势是什么?

我理解自定义事件如何在Backbone中工作以及如何触发它们,但我很难理解何时使用它们以及它们直接调用函数的目的是什么.

例如

var MyView = Backbone.View.extend({
    tagName: 'div',
    className: 'myview',

    initialize: function() {
        this.model.on("mycustomevent", this.doSomething, this);
    },

    doSomething: function() { 
         console.log('you triggered a custom event');
    }

});
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错,可以通过this.model.trigger("mycustomevent")在其他方法中使用来调用doSomething 方法,但也可以直接调用this.doSomething()

在视图之外,可以类似地调用它

var myview = new MyView({model:somemodel});

myview.model.trigger("customevent");

myview.doSomething();
Run Code Online (Sandbox Code Playgroud)

我很困惑的是为什么不放弃自定义事件,只需在需要时直接调用方法?任何示例用途将不胜感激!

javascript javascript-events backbone.js backbone-events

1
推荐指数
1
解决办法
307
查看次数