Hans Karlsen (talk | contribs) No edit summary |
Hans Karlsen (talk | contribs) No edit summary |
||
Line 79: | Line 79: | ||
} | } | ||
</pre> | |||
When using Typescript you may want to include a file like the one below to trigger the correct output: | |||
<pre> | |||
*********** IF YOU USE TYPESCRIPT Consider adding this file to your folder | |||
tsconfig.json | |||
with content: | |||
{ | |||
"compileOnSave": true, | |||
"compilerOptions": { | |||
"noImplicitAny": false, | |||
"noEmitOnError": true, | |||
"removeComments": false, | |||
"sourceMap": true, | |||
"target": "es5" | |||
}, | |||
"exclude": [ | |||
"node_modules" | |||
] | |||
} | |||
</pre> | </pre> |
Revision as of 14:19, 15 July 2017
In the Turnkey Web application you will find a folder EXT_Components.
In the EXT_Components folder you can put sub folders
- each sub folder will constitue one Component - the name of the folder is the component name.
Each component can have js scripts to be loaded when angular app starts - all js found here will be loaded
Each component must have a cshtml file for content structure - name this <component name>.cshtml
Each component probably has css style sheets - all css found here will be loaded - if <name>.min.css is found then <name>.css is skipped
Use in the model
Use a component in MDriven Designer by setting UIOverride on ViewModelColumn and:
tagged value Angular_Ext_Component=<component name>
Implement a Component with js,css and html
Example:
****** HTML - save as EXT_Components/test1/test1.cshtml ****** <!-- notice the use of test1 - it is an angular directive that we defines in the js further down --> <div test1 class="test1background"> </div>
****** CSS - save as EXT_Components/test1/test1.css ****** .test1background { background: pink; }
****** Javascript - save as EXT_Components/test1/test1.js ****** function InstallTheDirectiveFor_test1(streamingAppController) { streamingAppController.directive('test1', ['$document', function ($document) { return { link: function (scope, element, attr) { // THIS IS WHERE YOU SEE THE HTML(element) AND THE DATA (scope) FOR EVERYTHING THAT USE OUR DIRECTIVE (test1) var c = document.createElement('canvas'); element[0].appendChild(c); } }; }]); console.trace("test1 component Loaded"); } InstallTheDirectiveFor_test1(angular.module(MDrivenAngularAppModule));
If you use Typescript instead of javascript you can use this code:
****** Typescript if you prefer- save as EXT_Components/test1/test1.ts (js is generated by ts) ****** /// <reference path="../../Scripts/typings/jquery/jquery.d.ts" /> /// <reference path="../../Scripts/typings/angularjs/angular.d.ts" /> /// <reference path="../../js/MDrivenAngularApp.ts" /> namespace test1Namespace { function InstallTheDirectiveFor_test1(streamingAppController) { streamingAppController.directive('test1', ['$document', function ($document) { return { link: function (scope, element: HTMLDivElement[], attr) { let c: HTMLCanvasElement = document.createElement('canvas'); element[0].appendChild(c); } }; }]); console.trace("test1 component Loaded"); } InstallTheDirectiveFor_test1(angular.module(MDrivenAngularAppModule)); }
When using Typescript you may want to include a file like the one below to trigger the correct output:
*********** IF YOU USE TYPESCRIPT Consider adding this file to your folder tsconfig.json with content: { "compileOnSave": true, "compilerOptions": { "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5" }, "exclude": [ "node_modules" ] }