All, I’m struggling with the ember js workflow. Specifically I’m working with a proprietary JavaScript API that asyncronously renders content into a container of my choosing. When using this API in a template it only renders the first time. Where other, more simple, JavaScript seems to execute each time the template is shown.
Take the following for example
HelloRandom.hbs
<script>
function getRandom(min, max) {
return Math.random() * (max - min) + min;
}
$('#someContent).html('Hello ' + getRandom(1, 100));
</script>
The above works as intended, I navigate to http://localhost:4200/HelloRandom and a random number is generated. I then navigate to anywhere else in the application and back to HelloRandom and a new random number is generated.
If I plugin my code to the same template then it is only executed once and never again. I will post what I can here
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{content-for "head"}}
<link rel="stylesheet" href="{{rootURL}}assets/vendor.css">
<script type='text/javascript' language='JavaScript' src='http://localhost/myapi'></script>
{{content-for "head-footer"}}
</head>
<body>
{{content-for "body"}}
<script src="{{rootURL}}assets/vendor.js"></script>
{{content-for "body-footer"}}
</body>
</html>
HelloAPI.hbs
<script>
myAPI.load('module');
var ops = new myAPI.setOptions();
ops.setType('open');
ops.setDB('myDB');
myAPI.init('url', ops == undefined ? null : ops, null, null, function() {
"use strict";
var myContent = new myAPI.RenderContent('someContent');
myAPI.submit();
});
</script>
I’m thinking that this might have something to do with the fact that myAPI.load(‘module’) is in the template and causing issues. So I removed it and added it to in index.html but my API then complains that ‘module’ is not loaded.
I wish I could give more detail on my code, any help is appreciated.