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 - Fatal编程技术网

主干Javascript-未找到函数?

主干Javascript-未找到函数?,javascript,backbone.js,Javascript,Backbone.js,我一直得到一个过滤器消息不是一个函数错误。这里是主干视图类-不知道为什么它找不到函数 primaryFunction : function() { var self = this; innerFunction : function(filterString) { self.someOtherFunction(); }; } 这是Firebug中的错误 未定义筛选器消息 第152行FilterMessageAll.eachfunctionmessage{

我一直得到一个过滤器消息不是一个函数错误。这里是主干视图类-不知道为什么它找不到函数

primaryFunction : function() {
    var self = this;

    innerFunction : function(filterString) {
        self.someOtherFunction();
    };
}
这是Firebug中的错误 未定义筛选器消息 第152行FilterMessageAll.eachfunctionmessage{

MessageListView = Backbone.View.extend({

    defaults : {
        filterString : "all"
    },

    initialize : function() {

        this.collection.on("add", function(model) {
            var view = new MessageView({model: model});
            $("div.cameras").prepend(view.render().el);
        });

        this.collection.on("remove", function(model) {
            var ID = model.id;
            $("#message-" + ID).parent("div.message").remove();
        });

        this.collection.on("reset", function(models) {
            $("div.cameras").empty();
            filterMessages("all").each(function(message) {
                var view = new MessageView({model: message});
                $("div.cameras").prepend(view.render().el);
            });

        });

    },

    setFilter : function(filterString) {
        this.filterString = filterString;
        this.collection.reset(this.collection);
    },

    filterMessages : function(filterString) {
        return this.collection.filter(function(model){

            if (filterString == "all")
            {
                return true;
            }
            else if (filterString == "active")
            {
                return model.get("ignore") == "0";
            }
            else if (filterString == "ignore")
            {
                return model.get("ignore") == "1";
            }
            else if (filterString == "flag")
            {
                return model.get("flag") == true;
            }

        });
    }

});

您需要在视图的上下文中调用它:

initialize : function() {

    var self = this;

    // code here

    this.collection.on("reset", function(models) {
        $("div.cameras").empty();
        self.filterMessages("all").each(function(message) {
            var view = new MessageView({model: message});
            $("div.cameras").prepend(view.render().el);
        });
    });
}

您需要在视图的上下文中调用它:

initialize : function() {

    var self = this;

    // code here

    this.collection.on("reset", function(models) {
        $("div.cameras").empty();
        self.filterMessages("all").each(function(message) {
            var view = new MessageView({model: message});
            $("div.cameras").prepend(view.render().el);
        });
    });
}

只需将其定义为内部函数外部的变量,因为它在内部函数内部时将采用不同的属性

primaryFunction : function() {
    var self = this;

    innerFunction : function(filterString) {
        self.someOtherFunction();
    };
}

只需将其定义为内部函数外部的变量,因为它在内部函数内部时将采用不同的属性

primaryFunction : function() {
    var self = this;

    innerFunction : function(filterString) {
        self.someOtherFunction();
    };
}

是的,成功了。谢谢。JS的一个恼人的“功能”。是的,成功了。谢谢。JS的一个恼人的“功能”。