从Backbone中的View调用函数的问题

时间:2013-10-23 08:56:52

标签: javascript backbone.js

我在骨干中创建了模型和视图。它给我一个语法错误 “SyntaxError:函数语句需要一个名称 - > changeClg:function(height,width){”

selectTable = Backbone.View.extend({
    render: function() {
        var height= 50;
        var width= 56;
        if (true) {
            changeClg(height,width);
        }
        changeClg: function (height, width) {
            console.log("inside changeClg");
        }
        var selector = this.$el.find("select.clg-selection");
        selector.html("<option></option>");
    }
});

但是当我在View之外用不同的语法声明changeClg函数时,它正在工作

selectTable = Backbone.View.extend({
    render: function() {
        var height= 50;
        var width= 56;
        if (true) {
          changeClg(height,width);
        }
        var selector = this.$el.find("select.clg-selection");
        selector.html("<option></option>");
    }
});
changeClg = function (height, width) {
    console.log("inside changeClg");
    this.$el.find(".clg-dors")[0];
}

实际上我需要使用el对象以及其他一些对象,所以我必须转到第一个选项,但它给了我错误。

我只是调用“changeClg”函数,但它给了我语法错误。

我想知道这两个函数声明有什么不同?

有谁能告诉我可能是什么问题?

2 个答案:

答案 0 :(得分:1)

我认为changeClg: function (height, width)不是正确的语法。 你应该使用 `var changeClg = function(height,width){...}  代替。

您遇到的问题是因为您没有使用以下方法创建对象:函数是错误的,即 c = {a: function{...}} 是的,你可以使用c.a()但是 a: function{...}错了 var a = function {...}是正确的方法,您可以直接使用()

答案 1 :(得分:0)

它正在工作我们应该使用“this”关键字来调用对象属性,并且我在render属性之后创建了“changeClg”函数,如下所示

selectTable = Backbone.View.extend({
    render: function() {
    var height= 50;
    var width= 56;
        if (true) {
          this.changeClg(chartHeight);
        }
      var selector = this.$el.find("select.clg-selection");
      selector.html("<option></option>");
    },
    changeClg: function (height, width) {
        console.log("inside changeClg");
    }
});

由于