Javascript 在主干视图上定义变量
在我的代码的Javascript 在主干视图上定义变量,javascript,backbone.js,Javascript,Backbone.js,在我的代码的视图中,我习惯了以下示例: //for functions functionName: function(…){…}, //for objects objectName: function(…){…}, //for returning a function nameToReturnFunction: function(…){ return {…} }, 如何编写以下内容,而不是在render()或init()中 我在render或init中声明了变量,然后使用this.pathFu
视图中,我习惯了以下示例:
//for functions
functionName: function(…){…},
//for objects
objectName: function(…){…},
//for returning a function
nameToReturnFunction: function(…){ return {…} },
如何编写以下内容,而不是在render()或init()中
我在render或init中声明了变量,然后使用this.pathFunction=pathFunction
,但由于没有参数,我认为它应该作为一个整体出现在视图中
在我需要调用pathFunction
的各个地方,我想将其称为this.pathFunction
。我尝试了以下方法:
pathFunction: function() {
var pathFunction = d3.svg.line()
.x(function (d) {return d.x;})
.y(function (d) {return d.y;})
.interpolate('basis');
}
但是这不起作用,因为this.pathFunction
是一个函数,当我执行.attr('d',pathFunction)
之前的结构时,它不会返回变量调用所执行的操作。我对d3 api不是很熟悉,但以下应该可以工作:
pathFunction: function() {
return d3.svg.line()
.x(function (d) {return d.x;})
.y(function (d) {return d.y;})
.interpolate('basis');
}
然后您应该能够像以前一样调用它:.attr('d',pathFunction)
您当前的代码段正确地执行了d3函数,但仅在pathFunction的范围内(该函数未将其返回到调用函数)。您是否可以对“如何将此变量函数链作为其自身的一部分附加到视图”的含义再加一点解释
pathFunction: function() {
return d3.svg.line()
.x(function (d) {return d.x;})
.y(function (d) {return d.y;})
.interpolate('basis');
}