Ես այստեղ ունեմ stackbiltz - https://stackblitz.com/edit/lable-line-break-vaszab?file=src/app/app.component.ts
Ես ունեմ d3 գծապատկեր և Angular հավելվածում:
X առանցքի պիտակները բաժանվում են երկու տողի վրա՝ օգտագործելով մի ֆունկցիա, որը կոչվում է, քանի որ ստեղծվում են z առանցքի տիզերը
private insertLinebreak(d) {
let labels = d3.select(this);
let words = d;
console.log("Label:", labels.html());
labels.text('');
let index = words.indexOf(' ', words.indexOf(' ') + 1)
let title = words.substr(0, index)
let subtitle = words.substr(index + 1)
let tspantitle = labels.append('tspan').text(title)
let tspansubtitle = labels.append('tspan').text(subtitle)
tspantitle
.attr('x', 0)
.attr('dy', '15')
.attr('class', 'x-axis-title');
tspansubtitle
.attr('x', 0)
.attr('dy', '16')
.attr('class', 'x-axis-subtitle');
};
Ֆունկցիան օգտագործում է «սա»՝ ֆունկցիան կանչող «g» ընտրելու համար (բայց d3-ում, կարծում եմ, այն ընտրում է ամբողջ svg-ը)
Այս կոդը աշխատում է stackblitz-ում, բայց իմ իրական կոդում ես սխալ եմ ստանում
Argument of type 'this' is not assignable to parameter of type 'BaseType'.
Ես գիտեմ, որ սա այնքան էլ օգտակար չէ
Կարծում եմ, սա կապ ունի Typescript-ի և այն կերպ, թե ինչպես է այն վարվում «սա»
Որևէ մեկը գիտի՞, թե ինչու է դա տեղի ունենում և ինչպես կարող եմ դա շտկել: