Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单例对象上的主干事件侦听器_Javascript_Backbone.js_Requirejs_Backbone Views_Backbone Events - Fatal编程技术网

Javascript 单例对象上的主干事件侦听器

Javascript 单例对象上的主干事件侦听器,javascript,backbone.js,requirejs,backbone-views,backbone-events,Javascript,Backbone.js,Requirejs,Backbone Views,Backbone Events,我正在尝试创建一个单例对象作为主干上视图的模型,并且每当该单例对象被更改和更新时,我都希望重新渲染该视图。我不确定下面的代码是否正确 型号 define(function(require) { var Singleton = require("modules/Singleton"); var Singleton = null; var SingletonHolder = { init: function() { Singlet

我正在尝试创建一个单例对象作为主干上视图的模型,并且每当该单例对象被更改和更新时,我都希望重新渲染该视图。我不确定下面的代码是否正确

型号

define(function(require) {
     var Singleton = require("modules/Singleton");
     var Singleton = null;
     var SingletonHolder = {

        init: function() {
           Singleton = new Singleton();
           return Singleton.fetch();
        },

        current: function() {
           return Singleton;
        },

        refresh: function() {
           return Singleton.fetch();
        }
     };

    return SingletonHolder;
});
控制器

var currentObj = SingletonHolder.current();
var tempView = new TempView({
            model: currentObj
}); 
查看

var TempView = Backbone.View.extend({
    initialize: function() {
         this.listenTo(this.model, "change", this.render);
    }

    render: function() {
         ...
    }

});

由于某些原因,它不起作用。我错过什么了吗?我还尝试调用Singleton.refresh,它会转到服务器端并从数据库中获取最新数据,但它不会检测到更改并重新呈现视图。

如果已经使用requirejs,则不必定义Singleton

单身人士:

define(['models/foo'], function(FooModel){
  return new FooModel;
})
控制器:

define(['foosingleton', 'tempview'], function(fooSingleton, TempView){
  var tempView = new TempView({
    model: fooSingleton
  }); 
});
这里有一个类似的问题: