【问题标题】:Backbone update model骨干更新模型
【发布时间】:2013-06-21 15:34:04
【问题描述】:

在主干中,我创建了以下模型、集合和视图

var sensor= Backbone.Model.extend({})

var sensorCollection = Backbone.Collection.extend({ model: sensor })

var sensors= new sensorCollection;

var SensorView =Backbone.View.extend({})

var AppView =Backbone.View.extend({})

var App = new AppView

我也有这个 PHP 套接字正在运行:

var conn = new ab.Session('ws:localhost:8080', function() {
    conn.subscribe('temperature', function(topic, data) {
        console.log('Current temperature reading' + data.temperature);
        sensor.set({temperature:data.temperature});//Attempting to change backbone model

    });
}, function() {
    console.warn('WebSocket connection closed');
}, {
    'skipSubprotocolCheck' : true
}); 

我正在尝试使用来自插座的温度读数来更改/更新模型。如您所见,我已经通过sensor.set 进行了尝试,还尝试了以下方法:

App.model.set

This.model.set

App.sensor.set

它以不同的方式表示未定义或有关未找到函数的内容。我在这里错过了什么吗?它们都声明在同一个$(function(){}

如何从我的 Autobahn 套接字函数更新我的骨干模型?

【问题讨论】:

    标签: javascript jquery backbone.js backbone-model


    【解决方案1】:

    Backbone.Model.extend({}) 返回一个类,而不是一个实例。你应该改写:

    var Sensor = Backbone.Model.extend({}); 变种传感器=新传感器(); sensor.on('变化:温度',函数(温度){ console.log('新温度:' + 温度); }); var conn = new ab.Session('ws:localhost:8080', function() { conn.subscribe('温度', function(topic, data) { console.log('当前温度读数' + data.temperature); sensor.set({temperature:data.temperature});//尝试改变主干模型 }); }, 功能() { console.warn('WebSocket 连接关闭'); }, { 'skipSubprotocolCheck':真 });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-31
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      相关资源
      最近更新 更多