-
Notifications
You must be signed in to change notification settings - Fork 27.4k
custom directives with self closing tags capture tag siblings #1953
Comments
self-closing or void elements as the html spec defines them are very special to the browser parser. you can't make your own, so for your custom elements you have to stick to non-void elements ( this can't be changed in angular. closing. |
This just tripped me up, too. Could something be added to the documentation? Nothing shows up when searching for "self-closing tag" on the Angular site, but Google got me here. |
There are no directives with self-closing tags unfortunately, it's not really possible to support these, as the HTML parser in the browser decides if a tag is allowed to be a void tag or not. :( I think this is mentioned in the documentation, but if it's not, please submit a patch making a note of it! |
Maybe I'm not using the right documentation? Searching for "self-closing" is a no-op (doesn't even say "no results" or anything) and searching for "directive" gives me a ton of results, none of which have the word "directive" in the link. So, I'm not sure where that patch would go. |
You can deliver your document as XHTML if you want use custom "self-closing" or void elements, but I have never tried to use AngularJS with XHTML. |
At least some of it works for XHTML, though it's not clear how much. |
Just came across a scenario with Is this a non-issue or is there a workaround? Would the powers-that-be also add an answer to that question on Stack Overflow for future references. |
@IgorMinar, I disagree with your reading and interpretation of the spec. Here is the VOID ELEMENT specification. It doesn't say that it's "very special to the browser". It does say that it can have "no content under any circumstances". It's possible, in that case, that the Angular team could declare that's the standard and end the discussion. It's also possible (but you don't say) that Angular cannot properly process DOM VOID Elements across browser types. However, I don't believe any of these hold water. There's no reason not to fix this behavior. The correct fix would be to replace the void element with start & finish tags (appears to be the current behavior and Angular already manipulates the DOM all over the place) and then NOT grab the peers or otherwise wipe them out (i.e. fix the bug). Otherwise, we are forced to write HTML code that is a work-around.
Meh. Please reconsider this or post a pointer to the Angular source code that processes directives. Maybe someone here will have the time, energy and chops to submit a fix for future inclusion. Here is a jsFiddle if anyone feels like watching this happen and or for a simple test case. |
OK, I stand corrected on this. Here's a Stack Overflow Q&A on the topic. One commenter stated that the problem is with Browser (mis)interpretation for void elements. I created another jsFiddle that demonstrates the browser behavior that is the cause of this problem. I suspect this was an early incorrect implementation in some original browser that has now propagated to every browser. This is a rarely used tag syntax and most folks don't understand how void elements are supposed to work. XML (and SGML before it) set all of this up years ago; this is not the way that tag semantics is supposed to work. Quite honestly, all browser behaviors should be fixed. Somehow, I doubt a little side case in a front end MVC framework will trigger a WWW change in browsers. If it is to be fixed, I imagine it will have to go into the next W3C revision to HTML. Anyone feel like taking up the torch? |
directives because Google can not fix the compiler in all browsers. The closest Angular gets to documentation on this is located here: angular/angular.js#1953 Make the password field a password input to mask its content. Make these signing directives elements only instead of allowing any valid way to key them.
directives because Google can not fix the compiler in all browsers. The closest Angular gets to documentation on this is located here: angular/angular.js#1953 Make the password field a password input to mask its content. Make these signing directives elements only instead of allowing any valid way to key them.
Custom directives should not be self-closing or void elements. Docs and samples updated to reflect this. See this for more info: angular/angular.js#1953 (comment)
Custom directives should not be self-closing or void elements. Docs and samples updated to reflect this. See this for more info: angular/angular.js#1953 (comment)
Change all pseudo-self-closing-tags to explicitly closed tags AngularJS is a really *clever* framework. But good code should *not* be clever, just be easily understandable and easy to learn. AngularJS tries hard to make you think what you are writing is HTML. It is *not*. You will believe it really long, and one day it will bite you. AngularJS creates custom HTML tags. How could anything ever possibly go wrong? The specification doesn't say much about unknown elements, and voila, you're hurt. Here, the issue is that HTML says elements cannot be self-closing, except for a tiny number of enumerated tags. And AngularJS' tags of course are not in the set of what can be self-closed. So, the natural effect is that they are not closed, and immediately englobe all the elements until their parent is closed. Does that sound normal? AngularJS devs say this is not an AngularJS bug. They are right, *this* is not an AngularJS bug. The issue is that AngularJS even tries to make you believe what you are writing is normal html. Let me hammer it down once more, *it* *is* *not*. AngularJS is fundamentally broken. It hacks on a specification that is not designed to handle it. Undoubtedly, it is a really amazing lot of clever code, but it is not usable. As soon as you try thinking as they want you to think, that is as though you are writnig "normal" HTML with special tags, the game is over and you discover it is not. What you are writing is not HTML, it is AngularJS' pseudolanguage. And it looks like it is designed to break on every (x)html version change: it draws so deeply on the internals of the language that any non-conformance will simply make it not work. If they wanted to make their own pseudolanguage, they really should have actually used one, and even thrown xml out of the window. Anyway, xml is a failure too in modern networks, with its redundant verbose tags. They could just have written a parser in javascript and used it -- anyway, when you use such a huge framework you are *expecting* the webpage to be extremely slow to load. So AngularJS developers chose the worst of the options: they relied on HTML parsing by the browser, but at the same time decided not to use standard elements, thus creating a domain-specific language. THEY CREATED A DSL WITH A PARSER THEY DID NOT WRITE. Yes, you read it right, it's completely stupid: any bug in any browser's parser will just make the website unreadable. And it's not like it's even often used code paths. No, they chose to use the least normal code paths, by deciding to use elements that actually do not exist and therefore do not have the same nth-class-citizenship as the others. So, yes, it's clever, but actually such clever hacks should only be used during the IOCCC, not when writing production code. I think I'm done for now, but to recap: AngularJS' fundamental design is broken due to cleverness
Just a thought here. Maybe it's stupid. But would it work to add an angular directive to a self-closing |
@bjorn-ali-goransson, it should work, but I don't see how this is related to this thread. |
201d445 fix(core/ga): Re-enable google analytics (spinnaker#6453) b6166e0 fix(webhooks): Ensure body and status code are shown for webhooks with monitoring (spinnaker#6452) dba26d8 feat(kubernetes/v2): Converts CopyToClipboard to React Component (spinnaker#6451) 95b1f5c fix(core/pipeline): Support expressions for pipeline name in the pipeline stage 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment)
6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment)
201d445 fix(core/ga): Re-enable google analytics (#6453) b6166e0 fix(webhooks): Ensure body and status code are shown for webhooks with monitoring (#6452) dba26d8 feat(kubernetes/v2): Converts CopyToClipboard to React Component (#6451) 95b1f5c fix(core/pipeline): Support expressions for pipeline name in the pipeline stage 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment)
6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment)
* chore(kubernetes): Bump version to 0.0.21 27d8a12 chore(eslint): Fix lint errors a8c1749 chore(package): Just Update Prettier™ 9eccc0f refactor(artifacts): Generalize artifact delegate for reuse (#6495) 6c54b61 fix(kubernetes): do not override `location` and `replicas` in new Scale Manifest stage a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 54157f2 fix(kubernetes/serverGroup): Remove module.exports assignment in typescript file 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages d53836b refactor(kubernetes/modal): Refactor kubernetes modals to use WizardPage component dba26d8 feat(kubernetes/v2): Converts CopyToClipboard to React Component (#6451) 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 65c2601 fix(kubernetes): post strategic patch body as object 51a8542 fix(kubernetes): fix account selection by handling null values passed to ManifestSelector.isExpression 35be1f0 refactor(*): Don't use js or ts file extension in require() a02a5e1 chore(k8s): clean up imports (#6430) fa18bdc feat(kubernetes/v2): Adds CopyToClipboard component to ease getting text from UI (#6419) 98a85e9 chore(*): bump @types/enzyme@3.1.15, @types/jasmine@3.3.7, enzyme@3.8.0, enzyme-adapter-react-16@1.7.1, karma@4.0.0, karma-jasmine@2.0.1, karma-webpack@3.0.5, typescript@^3.2.4, jasmine-core@3.3.0 - disable jasmine 3.0's random test order by default feature 93f1209 fix(appengine/google/kubernetes): change logo background colors to official brand colors (#6347) e802c45 fix(*): allow modal to stay open on auto-close (#6329) 6fee54d fix(kubernetes): specify monospace fonts to prevent cursor misalignment in ace editor 86baac9 refactor(*): use mask-image CSS for cloud provider logos (#6280) * chore(google): Bump version to 0.0.5 a8c1749 chore(package): Just Update Prettier™ a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages d09a910 feat(google): Add support for accelerators when deploying VMs (#6467) 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 35be1f0 refactor(*): Don't use js or ts file extension in require() 87013c6 config(google): Update GCE's base URL to the new domain (#6401) 9f90ebd fix(google): safe healthcheck lookups when cloning server group b920442 fix(google): differentiate among autohealing health check kinds 786862b fix(google): fix autohealing clone logic 93f1209 fix(appengine/google/kubernetes): change logo background colors to official brand colors (#6347) e802c45 fix(*): allow modal to stay open on auto-close (#6329) d4127fa fix(google): prevent parent server group from overwriting null clone autohealing policies 86baac9 refactor(*): use mask-image CSS for cloud provider logos (#6280) 3afbd00 fix(bake): Allow null extended attributes in bake stages (#6256) 6b8188b chore(*): Add core alias to module tsconfigs
0a5fd58 refactor(*): remove cache-clearing calls that do not do anything (spinnaker#6861) 72e164d refactor(core): de-angularize ApplicationModelBuilder, fix project executions (spinnaker#6802) e2b4d8e refactor(*): remove unused local storage caches (spinnaker#6665) 0cdcb1e fix(bake/oracle): Added extendedAttributes (spinnaker#6627) 7d5fc34 chore(prettier): Just Use Prettier™ (spinnaker#6600) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points d72bc17 fix(eslint): Fix eslint warnings for @typescript-eslint/camelcase a8c1749 chore(package): Just Update Prettier™ 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 35be1f0 refactor(*): Don't use js or ts file extension in require() ca71ab6 fix(oracle/pipeline): Rename ng module to spinnaker.oracle.* (spinnaker#6219) 6b8188b chore(*): Add core alias to module tsconfigs af292f6 fix(imports): Avoid "import { thing } from 'core'" d1acd1b fix(provider/oracle): fix update/edit LoadBalancer (spinnaker#6043) 72e1e8d fix(provider/oracle): add ssh key (spinnaker#5901) 2f3ca8d feat(provider/oracle): create/delete LoadBalancer (spinnaker#5868) 55987ec fix(bake): Execution details Rebake was always false when force rebaking a74a7f3 fix(bakery/oracle): use read-only text field for bake region (spinnaker#5843)
2f958d9 fix(cf): Change CUPS label to Route Service URL (spinnaker#7090) 8398d77 refactor(*): make accountExtractor return an array of strings (spinnaker#7068) 7cbf241 feature(cf): server group details creation timestamp links to pipeline (spinnaker#7062) b712673 fix(cf): fix deploy service manifest artifact selection (spinnaker#7059) 64589b6 feat(cf): Accepting both JSON and YAML in the Deploy Service Configuration stage `parameters` field (spinnaker#7042) ce8a163 fix(cf): add Artifactory link (spinnaker#6994) 84db0ef fix(cf): reorg build info details on server group detail and summary (spinnaker#6983) f646a5a fix(cf): Clone sg modal appears. Removed unused lb code. (spinnaker#6915) 7312bb5 feat(cf): add build info to server group (spinnaker#6912) 07895b0 fix(cf): Allow deletion of non existing cluster (spinnaker#6907) 7269d2e feat(cf): Added support for rolling red black deployments (spinnaker#6897) 632538d refactor(cf): remove destination from the SG command model (spinnaker#6892) 62c2b51 feat(cf): Reduce angular dependencies (spinnaker#6893) 662b154 feat(cf): Delete Service Key pipeline stage (spinnaker#6844) 33373c4 feat(cf): Remove React shims from pipeline stages (spinnaker#6856) 902613d fix(cloudfoundry): ensure basic validation of artifacts (spinnaker#6851) 7338f7d refactor(cf): use Observable to set state to prevent memory leaks (spinnaker#6832) ca36727 feat(cf): add deployment strategy to clone SG (spinnaker#6827) 36074c2 feat(cf): Create Service Key pipeline stage (spinnaker#6821) aad46c2 fix(provider/cf): Clone model so Orca monitors the correct foundation for up instances (spinnaker#6817) 476e0dd fix(provider/cf): Fix provider selection for resize stage in pipeline (spinnaker#6754) 72e164d refactor(core): de-angularize ApplicationModelBuilder, fix project executions (spinnaker#6802) 1a2af9a fix(provider/cf): Make expected artifacts selectable as clone manifests (spinnaker#6796) 8422d6a fix(pipeline): Fix target impedance validator for clone server group (spinnaker#6785) e0a8639 fix(cf): Repair Rollback Cluster pipeline stage (spinnaker#6743) c37500c fix(cf): Map/Unmap LBs and UI cleanup (spinnaker#6737) 09e96a2 fix(provider/cf): Default clone operations to start on creation (spinnaker#6735) 03fa0d9 fix(artifacts): Exclude unmatchable expected artifact types (spinnaker#6709) 29b001b fix({core,cloudfoundry}/deploy): better red/black, rolling red/black help text (spinnaker#6699) b4ca2b8 fix(cf): Share / unshare execution details (spinnaker#6710) f80dfc5 feat(cf): prefix apps manager and metrics urls with https:// (spinnaker#6637) d00b45f fix(cf): map single route at a time (spinnaker#6700) dafedac feat(cf): Add Updatable Flag To Create Service (spinnaker#6706) facc737 fix(cf): provide meaningful labels in resize dialog (spinnaker#6704) 51eeba4 chore(core): upgrade the version to formik 1.4.1 (spinnaker#6705) 4f826d1 fix(cf): fix the alignment issue for artifacts in deploy SG (spinnaker#6701) e2940b4 feat(cf): Share/Unshare services (spinnaker#6685) 009d8c0 fix(cf): populate saved pipeline stage data (spinnaker#6689) 8f866ff fix(cf): make Deploy Service pipeline stage work again (spinnaker#6677) de57adf refactor(cf): Adopt artifact model in deploy stages (spinnaker#6659) 2224c5e fix(cf): rename text from load balancers to load balancer (spinnaker#6643) 39fe4c6 feat(cf): Display details in pipeline for services 7d5fc34 chore(prettier): Just Use Prettier™ (spinnaker#6600) 2277713 feat(cf): Use spinnaker's built-in timeouts (spinnaker#6476) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points b673d2c fix(cf): pipeline edit deploy server group (spinnaker#6576) 26471c4 feat(cf): add clone SG pipeline stage (spinnaker#6555) 93d83d6 fix(eslint): Fix eslint warnings for @typescript-eslint/no-namespace ddbe208 fix(eslint): Fix eslint warnings for no-useless-escape 8cba7ac fix(eslint): Fix eslint warnings for no-case-declarations 7e4b457 fix(amazon): Display capacity as text if using SPEL (spinnaker#6535) a8c1749 chore(package): Just Update Prettier™ 46de5cf chore(cf): rename serviceName to serviceInstanceName (spinnaker#6523) 539457c fix(cf): fix SG pipeline modal display issues (spinnaker#6504) a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5f81f40 feat(cf): Add artifacts for user-defined services (spinnaker#6468) 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 04bc98b feat(cf): Add Map/Unmap SGs and LBs 651b232 refactor(cloudfoundry/modal): Refactor cloudfoundry modals to use WizardPage component 6bdd9b0 feat(cf/serverGroup): Use discriminator 'type' field to improve type checking (spinnaker#6449) 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) e5bf053 refactor(*): Don't use ts or js file extension in imports 98a85e9 chore(*): bump @types/enzyme@3.1.15, @types/jasmine@3.3.7, enzyme@3.8.0, enzyme-adapter-react-16@1.7.1, karma@4.0.0, karma-jasmine@2.0.1, karma-webpack@3.0.5, typescript@^3.2.4, jasmine-core@3.3.0 - disable jasmine 3.0's random test order by default feature c9e93df refactor(cf): make SG inputs reusable components 8106122 feat(cf): Reactify resize and rollback modals (spinnaker#6325) 3983700 feat(cf): create AccountRegionClusterSelector React component (spinnaker#6314) f039770 refactor(provider/cf): reactify instance details (spinnaker#6172) 655f731 refactor(cf): reactify load balancer details pane (spinnaker#6295) f3d35e1 feat(cf): add user provided service support (spinnaker#6293) 16fd07d refactor(cf): separate SG details sections (spinnaker#6291) 86baac9 refactor(*): use mask-image CSS for cloud provider logos (spinnaker#6280) 1bb55ac feat(provider/cf): support multiple buildpacks (spinnaker#6223) 294df78 fix(provider/cf): show SG and Instance info with LoadBalancers (spinnaker#6224) 283fb36 refactor(provider/cf): refactor create SG to use FormikFormField (spinnaker#6212) b3f7e91 fix(provider/cf): do not trigger validation on serviceName when hidden (spinnaker#6197) 42e1790 feat(provider/cf): add SG clone action (spinnaker#6162) b1740a4 feat(provider/cf): Server Group Detail port is default health check type (spinnaker#6159) 307da1b refactor(core/account): Refactor AccountSelectInput to use 'value' prop 6f7f543 refactor(core/account): rename AccountSelectField to AccountSelectInput 142680b feat(provider/cf): add the metrics link to SG details (spinnaker#6147) d5c2511 feat(provider/cf): deploy Service via manifest (spinnaker#6094) 6b8188b chore(*): Add core alias to module tsconfigs fa9229c feat(provider/cf): shorten the appsManagerUri (spinnaker#6105) cd62a34 fix(provider/cf): make validators more robust (spinnaker#6047) 27a26b3 fix(provider/cf): use ICapacity type for scaling server groups 5165973 feat(provider/cf): option to define timeouts for service creation/destroy 790c4b6 feat(provider/cf): display cf health check details for app (spinnaker#6081) 1f47d7c fix(provider/cf): populate red/black strategy additional fields (spinnaker#6072) c8b8456 refactor(provider/cf): use custom implementation of DeploymentStrategySelector 15de39f refactor(provider/cf): reorder artifact types 72325a4 feat(provider/cf): display service tags for server group fd22aa0 feat(provider/cf): Allow health check config on deploy 25a9aa8 fix(provider/cf): render start application checkbox value 4a67136 refactor(provider/cf): use DeploymentStrategySelector react component 8847146 refactor(provider/cf): reactify pipeline stages 35cd08a fix(provider/cf): add missing trigger to deploys 081b48a refactor(provider/cf): make better use of formik library capabilities 23cd1d6 refactor(provider/cf): improve error messages on multiple route issues c8cb9da fix(provider/cf): handle different success/error cases to display checksum 90e6864 fix(provider/cf): allow only alphanumeric and '_' for env variable keys 2634178 chore(provider/cf): rename "Add services" to "Bind services" 57b1e49 chore(core/presentation): Update formik from 0.11.11 to 1.3.1 (spinnaker#5917) c0842ad fix(provider/cf): fetch services on a per-region basis d80e2f6 fix(provider/cf): ensure regions are initialized before rendering 4db9789 fix(provider/cf): fix deploy stage configuration from existing server group 73ed9ae refactor(provider/cf): rename deleteService to destroyService c8fae53 fix(provider/cf): fix environment variable definition for CF deployments 8e23f8f refactor(*): Replace all uses of wrapped AccountSelectField with react version (spinnaker#5832) 4348deb fix(provider/cf): create servergroup ux improvements 46989b4 fix(provider/cf): repair null errors in deploy
e2b4d8e refactor(*): remove unused local storage caches (spinnaker#6665) 49affe7 fix(appengine): allow sequence to be suppressed in servergroup names (spinnaker#6667) 7d5fc34 chore(prettier): Just Use Prettier™ (spinnaker#6600) 5cf6c79 chore(prettier): Just Use Prettier™ 3ffa4fb chore(angularjs): Do not use .component('foo', new Foo()) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points e1b6663 fix(eslint): Fix eslint warnings for @typescript-eslint/no-use-before-define ddbe208 fix(eslint): Fix eslint warnings for no-useless-escape a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 93f1209 fix(appengine/google/kubernetes): change logo background colors to official brand colors (spinnaker#6347) 86baac9 refactor(*): use mask-image CSS for cloud provider logos (spinnaker#6280) 8cef885 fix(appengine): move artifact account dropdown below radio buttons (spinnaker#6255) 6b8188b chore(*): Add core alias to module tsconfigs c190c41 fix(appengine): the selectedProvider is received as null when Create Server Group btn clicked (spinnaker#5908) 351d4fb feat(appengine): unflag container image url deployments (spinnaker#5894) 0a6d3f9 feat(provider/appengine): enable artifacts as config files (spinnaker#5888) bdca8aa feat(appengine): move config template into html file (spinnaker#5870)
8398d77 refactor(*): make accountExtractor return an array of strings (spinnaker#7068) 1c61cb2 feat(ecs): service discovery configuration (spinnaker#6899) 654fd3a feat(ecs): Configuration for platform version & placement constraints (spinnaker#6906) c550d82 feat(ecs): Configure tags (spinnaker#6905) 269d005 fix(ecs): populate load balancers when configuring cmd (spinnaker#6778) 6a76b5f fix(ecs): Fix name of health check grace period attribute (spinnaker#6746) 1c9e075 feat(ecs): docker image selection (spinnaker#6687) d63dc6d fix(ecs): Remove unused cacheInitializer injection (spinnaker#6681) e2b4d8e refactor(*): remove unused local storage caches (spinnaker#6665) 2e3fad2 fix(ecs/instance): restore accidentally deleted section in instance details 7d5fc34 chore(prettier): Just Use Prettier™ (spinnaker#6600) 04bb4a0 fix(html): Fix various invalid HTML (spinnaker#6599) 5cf6c79 chore(prettier): Just Use Prettier™ 3ffa4fb chore(angularjs): Do not use .component('foo', new Foo()) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 35be1f0 refactor(*): Don't use js or ts file extension in require() 56ce321 feat(ecs): Add option to copy scaling policies from previous server group (spinnaker#6251) e802c45 fix(*): allow modal to stay open on auto-close (spinnaker#6329) 86baac9 refactor(*): use mask-image CSS for cloud provider logos (spinnaker#6280) 5d0d72a fix(provider/ecs): Add memory limit to server group details (spinnaker#6135) 6b8188b chore(*): Add core alias to module tsconfigs 190064f feat(ecs): support private registry credentials (spinnaker#5799)
0a5fd58 refactor(*): remove cache-clearing calls that do not do anything (#6861) 72e164d refactor(core): de-angularize ApplicationModelBuilder, fix project executions (#6802) e2b4d8e refactor(*): remove unused local storage caches (#6665) 0cdcb1e fix(bake/oracle): Added extendedAttributes (#6627) 7d5fc34 chore(prettier): Just Use Prettier™ (#6600) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points d72bc17 fix(eslint): Fix eslint warnings for @typescript-eslint/camelcase a8c1749 chore(package): Just Update Prettier™ 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 35be1f0 refactor(*): Don't use js or ts file extension in require() ca71ab6 fix(oracle/pipeline): Rename ng module to spinnaker.oracle.* (#6219) 6b8188b chore(*): Add core alias to module tsconfigs af292f6 fix(imports): Avoid "import { thing } from 'core'" d1acd1b fix(provider/oracle): fix update/edit LoadBalancer (#6043) 72e1e8d fix(provider/oracle): add ssh key (#5901) 2f3ca8d feat(provider/oracle): create/delete LoadBalancer (#5868) 55987ec fix(bake): Execution details Rebake was always false when force rebaking a74a7f3 fix(bakery/oracle): use read-only text field for bake region (#5843)
2f958d9 fix(cf): Change CUPS label to Route Service URL (#7090) 8398d77 refactor(*): make accountExtractor return an array of strings (#7068) 7cbf241 feature(cf): server group details creation timestamp links to pipeline (#7062) b712673 fix(cf): fix deploy service manifest artifact selection (#7059) 64589b6 feat(cf): Accepting both JSON and YAML in the Deploy Service Configuration stage `parameters` field (#7042) ce8a163 fix(cf): add Artifactory link (#6994) 84db0ef fix(cf): reorg build info details on server group detail and summary (#6983) f646a5a fix(cf): Clone sg modal appears. Removed unused lb code. (#6915) 7312bb5 feat(cf): add build info to server group (#6912) 07895b0 fix(cf): Allow deletion of non existing cluster (#6907) 7269d2e feat(cf): Added support for rolling red black deployments (#6897) 632538d refactor(cf): remove destination from the SG command model (#6892) 62c2b51 feat(cf): Reduce angular dependencies (#6893) 662b154 feat(cf): Delete Service Key pipeline stage (#6844) 33373c4 feat(cf): Remove React shims from pipeline stages (#6856) 902613d fix(cloudfoundry): ensure basic validation of artifacts (#6851) 7338f7d refactor(cf): use Observable to set state to prevent memory leaks (#6832) ca36727 feat(cf): add deployment strategy to clone SG (#6827) 36074c2 feat(cf): Create Service Key pipeline stage (#6821) aad46c2 fix(provider/cf): Clone model so Orca monitors the correct foundation for up instances (#6817) 476e0dd fix(provider/cf): Fix provider selection for resize stage in pipeline (#6754) 72e164d refactor(core): de-angularize ApplicationModelBuilder, fix project executions (#6802) 1a2af9a fix(provider/cf): Make expected artifacts selectable as clone manifests (#6796) 8422d6a fix(pipeline): Fix target impedance validator for clone server group (#6785) e0a8639 fix(cf): Repair Rollback Cluster pipeline stage (#6743) c37500c fix(cf): Map/Unmap LBs and UI cleanup (#6737) 09e96a2 fix(provider/cf): Default clone operations to start on creation (#6735) 03fa0d9 fix(artifacts): Exclude unmatchable expected artifact types (#6709) 29b001b fix({core,cloudfoundry}/deploy): better red/black, rolling red/black help text (#6699) b4ca2b8 fix(cf): Share / unshare execution details (#6710) f80dfc5 feat(cf): prefix apps manager and metrics urls with https:// (#6637) d00b45f fix(cf): map single route at a time (#6700) dafedac feat(cf): Add Updatable Flag To Create Service (#6706) facc737 fix(cf): provide meaningful labels in resize dialog (#6704) 51eeba4 chore(core): upgrade the version to formik 1.4.1 (#6705) 4f826d1 fix(cf): fix the alignment issue for artifacts in deploy SG (#6701) e2940b4 feat(cf): Share/Unshare services (#6685) 009d8c0 fix(cf): populate saved pipeline stage data (#6689) 8f866ff fix(cf): make Deploy Service pipeline stage work again (#6677) de57adf refactor(cf): Adopt artifact model in deploy stages (#6659) 2224c5e fix(cf): rename text from load balancers to load balancer (#6643) 39fe4c6 feat(cf): Display details in pipeline for services 7d5fc34 chore(prettier): Just Use Prettier™ (#6600) 2277713 feat(cf): Use spinnaker's built-in timeouts (#6476) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points b673d2c fix(cf): pipeline edit deploy server group (#6576) 26471c4 feat(cf): add clone SG pipeline stage (#6555) 93d83d6 fix(eslint): Fix eslint warnings for @typescript-eslint/no-namespace ddbe208 fix(eslint): Fix eslint warnings for no-useless-escape 8cba7ac fix(eslint): Fix eslint warnings for no-case-declarations 7e4b457 fix(amazon): Display capacity as text if using SPEL (#6535) a8c1749 chore(package): Just Update Prettier™ 46de5cf chore(cf): rename serviceName to serviceInstanceName (#6523) 539457c fix(cf): fix SG pipeline modal display issues (#6504) a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5f81f40 feat(cf): Add artifacts for user-defined services (#6468) 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 04bc98b feat(cf): Add Map/Unmap SGs and LBs 651b232 refactor(cloudfoundry/modal): Refactor cloudfoundry modals to use WizardPage component 6bdd9b0 feat(cf/serverGroup): Use discriminator 'type' field to improve type checking (#6449) 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) e5bf053 refactor(*): Don't use ts or js file extension in imports 98a85e9 chore(*): bump @types/enzyme@3.1.15, @types/jasmine@3.3.7, enzyme@3.8.0, enzyme-adapter-react-16@1.7.1, karma@4.0.0, karma-jasmine@2.0.1, karma-webpack@3.0.5, typescript@^3.2.4, jasmine-core@3.3.0 - disable jasmine 3.0's random test order by default feature c9e93df refactor(cf): make SG inputs reusable components 8106122 feat(cf): Reactify resize and rollback modals (#6325) 3983700 feat(cf): create AccountRegionClusterSelector React component (#6314) f039770 refactor(provider/cf): reactify instance details (#6172) 655f731 refactor(cf): reactify load balancer details pane (#6295) f3d35e1 feat(cf): add user provided service support (#6293) 16fd07d refactor(cf): separate SG details sections (#6291) 86baac9 refactor(*): use mask-image CSS for cloud provider logos (#6280) 1bb55ac feat(provider/cf): support multiple buildpacks (#6223) 294df78 fix(provider/cf): show SG and Instance info with LoadBalancers (#6224) 283fb36 refactor(provider/cf): refactor create SG to use FormikFormField (#6212) b3f7e91 fix(provider/cf): do not trigger validation on serviceName when hidden (#6197) 42e1790 feat(provider/cf): add SG clone action (#6162) b1740a4 feat(provider/cf): Server Group Detail port is default health check type (#6159) 307da1b refactor(core/account): Refactor AccountSelectInput to use 'value' prop 6f7f543 refactor(core/account): rename AccountSelectField to AccountSelectInput 142680b feat(provider/cf): add the metrics link to SG details (#6147) d5c2511 feat(provider/cf): deploy Service via manifest (#6094) 6b8188b chore(*): Add core alias to module tsconfigs fa9229c feat(provider/cf): shorten the appsManagerUri (#6105) cd62a34 fix(provider/cf): make validators more robust (#6047) 27a26b3 fix(provider/cf): use ICapacity type for scaling server groups 5165973 feat(provider/cf): option to define timeouts for service creation/destroy 790c4b6 feat(provider/cf): display cf health check details for app (#6081) 1f47d7c fix(provider/cf): populate red/black strategy additional fields (#6072) c8b8456 refactor(provider/cf): use custom implementation of DeploymentStrategySelector 15de39f refactor(provider/cf): reorder artifact types 72325a4 feat(provider/cf): display service tags for server group fd22aa0 feat(provider/cf): Allow health check config on deploy 25a9aa8 fix(provider/cf): render start application checkbox value 4a67136 refactor(provider/cf): use DeploymentStrategySelector react component 8847146 refactor(provider/cf): reactify pipeline stages 35cd08a fix(provider/cf): add missing trigger to deploys 081b48a refactor(provider/cf): make better use of formik library capabilities 23cd1d6 refactor(provider/cf): improve error messages on multiple route issues c8cb9da fix(provider/cf): handle different success/error cases to display checksum 90e6864 fix(provider/cf): allow only alphanumeric and '_' for env variable keys 2634178 chore(provider/cf): rename "Add services" to "Bind services" 57b1e49 chore(core/presentation): Update formik from 0.11.11 to 1.3.1 (#5917) c0842ad fix(provider/cf): fetch services on a per-region basis d80e2f6 fix(provider/cf): ensure regions are initialized before rendering 4db9789 fix(provider/cf): fix deploy stage configuration from existing server group 73ed9ae refactor(provider/cf): rename deleteService to destroyService c8fae53 fix(provider/cf): fix environment variable definition for CF deployments 8e23f8f refactor(*): Replace all uses of wrapped AccountSelectField with react version (#5832) 4348deb fix(provider/cf): create servergroup ux improvements 46989b4 fix(provider/cf): repair null errors in deploy
e2b4d8e refactor(*): remove unused local storage caches (#6665) 49affe7 fix(appengine): allow sequence to be suppressed in servergroup names (#6667) 7d5fc34 chore(prettier): Just Use Prettier™ (#6600) 5cf6c79 chore(prettier): Just Use Prettier™ 3ffa4fb chore(angularjs): Do not use .component('foo', new Foo()) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points e1b6663 fix(eslint): Fix eslint warnings for @typescript-eslint/no-use-before-define ddbe208 fix(eslint): Fix eslint warnings for no-useless-escape a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 93f1209 fix(appengine/google/kubernetes): change logo background colors to official brand colors (#6347) 86baac9 refactor(*): use mask-image CSS for cloud provider logos (#6280) 8cef885 fix(appengine): move artifact account dropdown below radio buttons (#6255) 6b8188b chore(*): Add core alias to module tsconfigs c190c41 fix(appengine): the selectedProvider is received as null when Create Server Group btn clicked (#5908) 351d4fb feat(appengine): unflag container image url deployments (#5894) 0a6d3f9 feat(provider/appengine): enable artifacts as config files (#5888) bdca8aa feat(appengine): move config template into html file (#5870)
8398d77 refactor(*): make accountExtractor return an array of strings (#7068) 1c61cb2 feat(ecs): service discovery configuration (#6899) 654fd3a feat(ecs): Configuration for platform version & placement constraints (#6906) c550d82 feat(ecs): Configure tags (#6905) 269d005 fix(ecs): populate load balancers when configuring cmd (#6778) 6a76b5f fix(ecs): Fix name of health check grace period attribute (#6746) 1c9e075 feat(ecs): docker image selection (#6687) d63dc6d fix(ecs): Remove unused cacheInitializer injection (#6681) e2b4d8e refactor(*): remove unused local storage caches (#6665) 2e3fad2 fix(ecs/instance): restore accidentally deleted section in instance details 7d5fc34 chore(prettier): Just Use Prettier™ (#6600) 04bb4a0 fix(html): Fix various invalid HTML (#6599) 5cf6c79 chore(prettier): Just Use Prettier™ 3ffa4fb chore(angularjs): Do not use .component('foo', new Foo()) cc52bee chore(angularjs): Remove all 'ngInject'; in favor of explicit DI annotation b6bab1e chore(prettier): Just Use Prettier™ f3fd790 chore(angularjs): Explicitly annotate all AngularJS injection points a35088a chore(webpack): Switch to TerserPlugin. Split bundles into ~5mb chunks 5c49dd2 chore(typescript): Switch module from 'commonjs' to 'esnext' to emit raw dynamic 'import()' 0451046 chore(package): Add .npmignore to all packages 6f608a0 fix(*): Remove all self closing tags in AngularJS templates Reference: angular/angular.js#1953 (comment) 35be1f0 refactor(*): Don't use js or ts file extension in require() 56ce321 feat(ecs): Add option to copy scaling policies from previous server group (#6251) e802c45 fix(*): allow modal to stay open on auto-close (#6329) 86baac9 refactor(*): use mask-image CSS for cloud provider logos (#6280) 5d0d72a fix(provider/ecs): Add memory limit to server group details (#6135) 6b8188b chore(*): Add core alias to module tsconfigs 190064f feat(ecs): support private registry credentials (#5799)
Apparently they dont always work in angular and lead to failures on some browsers some of the time. angular/angular.js#1953
Apparently they dont always work in angular and lead to failures on some browsers some of the time. angular/angular.js#1953
When using a directive of type element that at the template is used with self-closing tags then the siblings following the tag are removed when the directive is processed.
E.g
Say there is a directive named 'foo', and the template is
will remove Sibling from the end result.
I experience this with Chrome 24.0.1312.57 and Safari 6.0.2 (8536.26.17) both on Mac
Workaround: replace
<foo />
with<foo></foo>
The text was updated successfully, but these errors were encountered: