Comments (5)
I wonder if this is related to #34: the current implementation of slots as a simple list doesn't work when the slots themselves are executed conditionally.
I think this is right. The current implementation looks at the components nodelist, identifies any slot nodes in that nodelist, then replaces them with either the provided content or the default content. In both of these issues, the problem is that there is a slot nested within some other node (either an IfNode
or another slot). If that happens, then the SlotNode
isn't removed when the template is compiled, and it renders itself using its default content.
You could potentially fix this by making the search for slots recursive. In conjunction with that, I think you'd also want to modify the slot's own nodelist rather than replacing it like we do currently, to minimize the chance that we violate some other node's expectations.
from django-components.
I wonder if this is related to #34: the current implementation of slots as a simple list doesn't work when the slots themselves are executed conditionally.
from django-components.
Interesting, you are a great tester for this project! :) I think we should do whatever block is doing, makes sense.
from django-components.
Hi,
I noticed the same behavior.
from django-components.
@jereze Would you mind helping to fix it? A PR that adds a test that shows the error would be a great start for instance.
from django-components.
Related Issues (20)
- python file names colide with global scope variables/modules HOT 6
- Release Version 1.0 HOT 3
- Tests: Component registry is not isolated across tests HOT 2
- v0.67 broken for "context_behavior": "isolated" HOT 1
- Doc bug: Imports in the view example
- Doc bug: component_tags instead of django_components HOT 2
- Remove options for slot context behavior for v1.0 HOT 9
- Nested slot fills with same name (and same component?) override outer slot fills HOT 1
- Bug: Context vars missing in slots when `isolated` settings
- "django_components.component" does not explicitly export attribute "register" HOT 10
- Async middleware HOT 5
- Tests refactor: Move from template files to inline templates HOT 2
- Define public API HOT 1
- template_loader blocks on STATICFILES_DIRS if there are tuples HOT 1
- Allow to render component dependencies without middleware HOT 11
- Feature parity with Juro's fork HOT 1
- Topic on new behaviour for dispatching slots using 'include' tags HOT 2
- Better support for AlpineJS HOT 5
- Scoped slots - Passing data to slots and accessing them in fills HOT 20
- Revert back to "django" as the default setting for "context_behavior"
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-components.