2014-11-21 5 views
0

После учебники с этого сайта: http://blog.krawaller.se/posts/the-reflux-data-flow-model/Uncaught TypeError: не определено не является функцией в RefluxJS

Я смотрю на замену var chatRef до фиктивных данных вместо использования new Firebase(...), как показано в примере автора. Не понял, как именно эта строка читается?

chatRef.on("value",this.updateChat.bind(this)); 

Что такое «значение» и как работает bind?

Пытался использовать вар chatRef = {0: "Hello", 1: "Hello"} произвести Uncaught TypeError: undefined is not a function

ответ

0

chatRef, как представляется, эмиттер события, по меньшей мере, одной пользовательской функции (нажимной).

Вы можете издеваться это так:

// you'll need to include an event emitter library 
var chatRef = new EventEmitter(); 
chatRef.push = function(data, cb){ 
    // if push emits a value event? not sure if it does 
    this.emit('value', {val: function(){ return data }); 
    cb(null); 
} 

// emit a fake message every second 
setInterval(function(){ 
    chatRef.push({text: "hey", from: "me", to: "them"}, function(){}) 
}, 1000); 

Если вы не получите его, вы должны прочитать на эмиттеров событий.

Для .bind звонок google Function.prototoype.bind. В этом случае привязка просто гарантирует, что при вызове обратного вызова он имеет правильное значение this.

+0

Только что увидел, что это был Firebase API, как в chatRef.on также Firebase.on –

+0

Что делает «значение» и является значением типа или? В коде: this.emit ('value', ...). Это первый раз, когда я видел, кроме «клика», как в JQuery, но это был Firebase API. –

+0

"value" - это название события. DOM имеет систему событий, но есть другие, такие как простая модель pubsub в EventEmitter и Firebase. – FakeRainBrigand

Смежные вопросы