| Autor | Zpráva | ||
|---|---|---|---|
| návštěvník Profil * |
#1 · Zasláno: 14. 5. 2015, 22:25:13
Potřeboval bych poradit jak vyřešit následující situaci:
První funkce je pod objektem Springy.Graph . Tam existuje pole Springy.Graph.nodes na které mohu v klídku aplikovat forEach Graph.prototype.createEdges = function(o) {
var t = this;
o.colors.forEach(function(e) {
t.colors.push(e);
t.fadeColors.push(o.blendingFnc(e,o.fadeColor,o.alphaBlendingRatio));
});
if (!this.useNodeTree)
return false;
if (typeof this.topNodes[0]==='undefined')
this.nodes.forEach(function(e) {
if (e.parent_id==null)
t.topNodes.push(e);
});
// Go through topnodes and through children
this.topNodes.forEach(function(e) {
e.newEdgeForChildren(o);
});
};Problém je ale, že potřebuju aplikovat forEach taky na Springy.Node jenže to nejde: Springy.Node.prototype.newEdgeForChildren = function(o)
{
var t=this;
var chooseColor = function(colors){
this.counter = typeof this.counter === 'undefined' ?0:this.counter+1;
if (this.counter==colors.length)
this.counter = 0;
if (typeof colors[this.counter]=== 'undefined' )
throw new Error("Color not defined in createEdge object.");
if (this.fadeParentNode && typeof colors[this.counter]=== 'undefined' )
throw new Error("Fade color not defined in createEdge object.");
return {color:graph.colors[this.counter],
fadeColor:graph.fadeColors[this.counter]};
};
// console.log(this);
// throw new Error("hava break");
// TADY JE PROBLÉM: this je (typ) Springy.Node
this.forEach(function(e) {
var id_parent=t.id;
var id_child=e.id;
var node1 = graph.nodeSet[id_parent];
if (node1 == undefined) {
throw new TypeError("invalid node name: " + id_parent);
}
var node2 = graph.nodeSet[id_child];
if (node2 == undefined) {
throw new TypeError("2 invalid node name: " + e[1]);
}
var colors, fadeColor, weight;
if (typeof o.colors == 'object')
colors = chooseColor(o.colors);
graph.newEdge(node1, node2, {color:colors.color, fadeColor:fadeColor, weight: o.max_weight-(e.level>o.max_weight?o.max_weight:o.max_weight-e.level) });
});
};this je typ Springy.Node takže mám chybu: this.forEach is not a function Proč? Jak to vyřešit? |
||
| návštěvník Profil * |
#2 · Zasláno: 15. 5. 2015, 07:14:15
Už jsem na to přišel, nakonec mi došlo, že forEach je na pole a this je object. Měl jsem tam dát this.children.
|
||
|
Časová prodleva: 11 let
|
|||
0