How to use json2html with jquery within Angular?











up vote
0
down vote

favorite












I'm tasked with integrating an existing UI into another already existing Angular app and got hung up on this...



I know the data + transform works well outside of the Angular context.



I didn't see an npm package for the jquery json2html so I tried to import that part in an ad-hoc manner by saving it along side the component's directory.



It produces ERROR TypeError: $(...).json2html is not a function...



...
import * as $ from 'jquery';
import json2html from 'json2html';
import * from './jquery.json2html.min.js';

...

$('#myTable > tbody').json2html(data,transform);









share|improve this question


















  • 2




    Using jQuery within Angular is generally seen as an anti-pattern
    – user184994
    Nov 9 at 22:13










  • Honestly, this feels like something that could be done super simply with standard Angular patterns, without the need for any sort of library....
    – cale_b
    Nov 9 at 22:15










  • Why don't you use jspdf(and maybe html2canvas) in angular? Here's a guide with an example. I've used this in angular 6 and it's worked like a charm
    – Ray Soy
    Nov 9 at 22:36












  • @user184994 that's why I included the context about integrating two separate applications. The goal is to get this done, even if it's dirty.
    – conner.xyz
    Nov 12 at 15:28






  • 1




    @RaySoy no I don't want PDFs. I want an interactive HTML table within the DOM.
    – conner.xyz
    Nov 15 at 22:47















up vote
0
down vote

favorite












I'm tasked with integrating an existing UI into another already existing Angular app and got hung up on this...



I know the data + transform works well outside of the Angular context.



I didn't see an npm package for the jquery json2html so I tried to import that part in an ad-hoc manner by saving it along side the component's directory.



It produces ERROR TypeError: $(...).json2html is not a function...



...
import * as $ from 'jquery';
import json2html from 'json2html';
import * from './jquery.json2html.min.js';

...

$('#myTable > tbody').json2html(data,transform);









share|improve this question


















  • 2




    Using jQuery within Angular is generally seen as an anti-pattern
    – user184994
    Nov 9 at 22:13










  • Honestly, this feels like something that could be done super simply with standard Angular patterns, without the need for any sort of library....
    – cale_b
    Nov 9 at 22:15










  • Why don't you use jspdf(and maybe html2canvas) in angular? Here's a guide with an example. I've used this in angular 6 and it's worked like a charm
    – Ray Soy
    Nov 9 at 22:36












  • @user184994 that's why I included the context about integrating two separate applications. The goal is to get this done, even if it's dirty.
    – conner.xyz
    Nov 12 at 15:28






  • 1




    @RaySoy no I don't want PDFs. I want an interactive HTML table within the DOM.
    – conner.xyz
    Nov 15 at 22:47













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I'm tasked with integrating an existing UI into another already existing Angular app and got hung up on this...



I know the data + transform works well outside of the Angular context.



I didn't see an npm package for the jquery json2html so I tried to import that part in an ad-hoc manner by saving it along side the component's directory.



It produces ERROR TypeError: $(...).json2html is not a function...



...
import * as $ from 'jquery';
import json2html from 'json2html';
import * from './jquery.json2html.min.js';

...

$('#myTable > tbody').json2html(data,transform);









share|improve this question













I'm tasked with integrating an existing UI into another already existing Angular app and got hung up on this...



I know the data + transform works well outside of the Angular context.



I didn't see an npm package for the jquery json2html so I tried to import that part in an ad-hoc manner by saving it along side the component's directory.



It produces ERROR TypeError: $(...).json2html is not a function...



...
import * as $ from 'jquery';
import json2html from 'json2html';
import * from './jquery.json2html.min.js';

...

$('#myTable > tbody').json2html(data,transform);






javascript angular json2html






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 9 at 22:10









conner.xyz

2,4131530




2,4131530








  • 2




    Using jQuery within Angular is generally seen as an anti-pattern
    – user184994
    Nov 9 at 22:13










  • Honestly, this feels like something that could be done super simply with standard Angular patterns, without the need for any sort of library....
    – cale_b
    Nov 9 at 22:15










  • Why don't you use jspdf(and maybe html2canvas) in angular? Here's a guide with an example. I've used this in angular 6 and it's worked like a charm
    – Ray Soy
    Nov 9 at 22:36












  • @user184994 that's why I included the context about integrating two separate applications. The goal is to get this done, even if it's dirty.
    – conner.xyz
    Nov 12 at 15:28






  • 1




    @RaySoy no I don't want PDFs. I want an interactive HTML table within the DOM.
    – conner.xyz
    Nov 15 at 22:47














  • 2




    Using jQuery within Angular is generally seen as an anti-pattern
    – user184994
    Nov 9 at 22:13










  • Honestly, this feels like something that could be done super simply with standard Angular patterns, without the need for any sort of library....
    – cale_b
    Nov 9 at 22:15










  • Why don't you use jspdf(and maybe html2canvas) in angular? Here's a guide with an example. I've used this in angular 6 and it's worked like a charm
    – Ray Soy
    Nov 9 at 22:36












  • @user184994 that's why I included the context about integrating two separate applications. The goal is to get this done, even if it's dirty.
    – conner.xyz
    Nov 12 at 15:28






  • 1




    @RaySoy no I don't want PDFs. I want an interactive HTML table within the DOM.
    – conner.xyz
    Nov 15 at 22:47








2




2




Using jQuery within Angular is generally seen as an anti-pattern
– user184994
Nov 9 at 22:13




Using jQuery within Angular is generally seen as an anti-pattern
– user184994
Nov 9 at 22:13












Honestly, this feels like something that could be done super simply with standard Angular patterns, without the need for any sort of library....
– cale_b
Nov 9 at 22:15




Honestly, this feels like something that could be done super simply with standard Angular patterns, without the need for any sort of library....
– cale_b
Nov 9 at 22:15












Why don't you use jspdf(and maybe html2canvas) in angular? Here's a guide with an example. I've used this in angular 6 and it's worked like a charm
– Ray Soy
Nov 9 at 22:36






Why don't you use jspdf(and maybe html2canvas) in angular? Here's a guide with an example. I've used this in angular 6 and it's worked like a charm
– Ray Soy
Nov 9 at 22:36














@user184994 that's why I included the context about integrating two separate applications. The goal is to get this done, even if it's dirty.
– conner.xyz
Nov 12 at 15:28




@user184994 that's why I included the context about integrating two separate applications. The goal is to get this done, even if it's dirty.
– conner.xyz
Nov 12 at 15:28




1




1




@RaySoy no I don't want PDFs. I want an interactive HTML table within the DOM.
– conner.xyz
Nov 15 at 22:47




@RaySoy no I don't want PDFs. I want an interactive HTML table within the DOM.
– conner.xyz
Nov 15 at 22:47












2 Answers
2






active

oldest

votes

















up vote
0
down vote













before anything you have to add jQuery in your angular.json then in the component you would to use jQuery with it do so



....
declare let $: any; // you can use "jQuery" keyword instead of "$"

@component({
selector: '...',
templateUrl: ['...'],
styleUrls: ['...']
})
export class JqueryExampleComponent implements onInit {

constructor(private eleRef: ElementRef) {}

ngOnInit() {
$(this.eleRef.nativeElement).find('#myTable > tbody').json2html(data,transform);
}
}


when you use $(this.eleRef.nativeElement) that gonna get the tree root of the component dom then .find('selector') to get the element you want






share|improve this answer























  • The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
    – conner.xyz
    Nov 15 at 22:17


















up vote
0
down vote













    npm install node-json2html


...
import json2html from 'json2html';
import * as $ from 'node-json2html';

...

ngAfterViewInit(){
$('table#myTable > tbody').json2html(data,transform);

}


or,



... 
import json2html from 'json2html';
import * as $ from './jquery.json2html.min.js';

...

$('table#myTable > tbody').json2html(data,transform);


Link:- http://www.json2html.com/






share|improve this answer























  • This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
    – user184994
    Nov 9 at 22:22












  • This doesn't work. You're squashing the jquery import like @user184994 mentioned.
    – conner.xyz
    Nov 12 at 15:45











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53233902%2fhow-to-use-json2html-with-jquery-within-angular%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
0
down vote













before anything you have to add jQuery in your angular.json then in the component you would to use jQuery with it do so



....
declare let $: any; // you can use "jQuery" keyword instead of "$"

@component({
selector: '...',
templateUrl: ['...'],
styleUrls: ['...']
})
export class JqueryExampleComponent implements onInit {

constructor(private eleRef: ElementRef) {}

ngOnInit() {
$(this.eleRef.nativeElement).find('#myTable > tbody').json2html(data,transform);
}
}


when you use $(this.eleRef.nativeElement) that gonna get the tree root of the component dom then .find('selector') to get the element you want






share|improve this answer























  • The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
    – conner.xyz
    Nov 15 at 22:17















up vote
0
down vote













before anything you have to add jQuery in your angular.json then in the component you would to use jQuery with it do so



....
declare let $: any; // you can use "jQuery" keyword instead of "$"

@component({
selector: '...',
templateUrl: ['...'],
styleUrls: ['...']
})
export class JqueryExampleComponent implements onInit {

constructor(private eleRef: ElementRef) {}

ngOnInit() {
$(this.eleRef.nativeElement).find('#myTable > tbody').json2html(data,transform);
}
}


when you use $(this.eleRef.nativeElement) that gonna get the tree root of the component dom then .find('selector') to get the element you want






share|improve this answer























  • The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
    – conner.xyz
    Nov 15 at 22:17













up vote
0
down vote










up vote
0
down vote









before anything you have to add jQuery in your angular.json then in the component you would to use jQuery with it do so



....
declare let $: any; // you can use "jQuery" keyword instead of "$"

@component({
selector: '...',
templateUrl: ['...'],
styleUrls: ['...']
})
export class JqueryExampleComponent implements onInit {

constructor(private eleRef: ElementRef) {}

ngOnInit() {
$(this.eleRef.nativeElement).find('#myTable > tbody').json2html(data,transform);
}
}


when you use $(this.eleRef.nativeElement) that gonna get the tree root of the component dom then .find('selector') to get the element you want






share|improve this answer














before anything you have to add jQuery in your angular.json then in the component you would to use jQuery with it do so



....
declare let $: any; // you can use "jQuery" keyword instead of "$"

@component({
selector: '...',
templateUrl: ['...'],
styleUrls: ['...']
})
export class JqueryExampleComponent implements onInit {

constructor(private eleRef: ElementRef) {}

ngOnInit() {
$(this.eleRef.nativeElement).find('#myTable > tbody').json2html(data,transform);
}
}


when you use $(this.eleRef.nativeElement) that gonna get the tree root of the component dom then .find('selector') to get the element you want







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 9 at 22:47

























answered Nov 9 at 22:42









Amir Fawzy

2188




2188












  • The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
    – conner.xyz
    Nov 15 at 22:17


















  • The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
    – conner.xyz
    Nov 15 at 22:17
















The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
– conner.xyz
Nov 15 at 22:17




The problem here is that json2html is somehow not in scope, not that I can't perform selections using jquery.
– conner.xyz
Nov 15 at 22:17












up vote
0
down vote













    npm install node-json2html


...
import json2html from 'json2html';
import * as $ from 'node-json2html';

...

ngAfterViewInit(){
$('table#myTable > tbody').json2html(data,transform);

}


or,



... 
import json2html from 'json2html';
import * as $ from './jquery.json2html.min.js';

...

$('table#myTable > tbody').json2html(data,transform);


Link:- http://www.json2html.com/






share|improve this answer























  • This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
    – user184994
    Nov 9 at 22:22












  • This doesn't work. You're squashing the jquery import like @user184994 mentioned.
    – conner.xyz
    Nov 12 at 15:45















up vote
0
down vote













    npm install node-json2html


...
import json2html from 'json2html';
import * as $ from 'node-json2html';

...

ngAfterViewInit(){
$('table#myTable > tbody').json2html(data,transform);

}


or,



... 
import json2html from 'json2html';
import * as $ from './jquery.json2html.min.js';

...

$('table#myTable > tbody').json2html(data,transform);


Link:- http://www.json2html.com/






share|improve this answer























  • This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
    – user184994
    Nov 9 at 22:22












  • This doesn't work. You're squashing the jquery import like @user184994 mentioned.
    – conner.xyz
    Nov 12 at 15:45













up vote
0
down vote










up vote
0
down vote









    npm install node-json2html


...
import json2html from 'json2html';
import * as $ from 'node-json2html';

...

ngAfterViewInit(){
$('table#myTable > tbody').json2html(data,transform);

}


or,



... 
import json2html from 'json2html';
import * as $ from './jquery.json2html.min.js';

...

$('table#myTable > tbody').json2html(data,transform);


Link:- http://www.json2html.com/






share|improve this answer














    npm install node-json2html


...
import json2html from 'json2html';
import * as $ from 'node-json2html';

...

ngAfterViewInit(){
$('table#myTable > tbody').json2html(data,transform);

}


or,



... 
import json2html from 'json2html';
import * as $ from './jquery.json2html.min.js';

...

$('table#myTable > tbody').json2html(data,transform);


Link:- http://www.json2html.com/







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 9 at 22:49

























answered Nov 9 at 22:20









Ahmad mnzr

767319




767319












  • This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
    – user184994
    Nov 9 at 22:22












  • This doesn't work. You're squashing the jquery import like @user184994 mentioned.
    – conner.xyz
    Nov 12 at 15:45


















  • This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
    – user184994
    Nov 9 at 22:22












  • This doesn't work. You're squashing the jquery import like @user184994 mentioned.
    – conner.xyz
    Nov 12 at 15:45
















This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
– user184994
Nov 9 at 22:22






This will cause errors, you've already imported jquery as *, and doing declare const $:any; will clash with the previous declaration
– user184994
Nov 9 at 22:22














This doesn't work. You're squashing the jquery import like @user184994 mentioned.
– conner.xyz
Nov 12 at 15:45




This doesn't work. You're squashing the jquery import like @user184994 mentioned.
– conner.xyz
Nov 12 at 15:45


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53233902%2fhow-to-use-json2html-with-jquery-within-angular%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Guess what letter conforming each word

Port of Spain

Run scheduled task as local user group (not BUILTIN)