Trait silkenweb::node::element::ParentElement
source · pub trait ParentElement<D: Dom = DefaultDom>: Element {
// Required methods
fn text<'a, T>(self, child: impl RefSignalOrValue<'a, Item = T>) -> Self
where T: 'a + AsRef<str> + Into<String>;
fn optional_child(
self,
child: impl SignalOrValue<Item = Option<impl ChildNode<D>>>
) -> Self;
fn children<N>(self, children: impl IntoIterator<Item = N>) -> Self
where N: Into<Node<D>>;
fn children_signal<N>(
self,
children: impl SignalVec<Item = N> + 'static
) -> Self
where N: Into<Node<D>>;
// Provided method
fn child(self, child: impl SignalOrValue<Item = impl ChildNode<D>>) -> Self { ... }
}
Expand description
An element that can have children.
Required Methods§
sourcefn text<'a, T>(self, child: impl RefSignalOrValue<'a, Item = T>) -> Self
fn text<'a, T>(self, child: impl RefSignalOrValue<'a, Item = T>) -> Self
Add a text child to this element
§Example
Static text:
div().text("Hello, world!");
Dynamic text:
let text = Mutable::new("Hello, world!");
div().text(Sig(text.signal()));
sourcefn optional_child(
self,
child: impl SignalOrValue<Item = Option<impl ChildNode<D>>>
) -> Self
fn optional_child( self, child: impl SignalOrValue<Item = Option<impl ChildNode<D>>> ) -> Self
Add an optional child to the element.
The child will update when the signal changes to Some(..)
, and will be
removed when the signal changes to None
.
§Example
Add a static optional child:
let text = Mutable::new("hello");
div().optional_child(Some(p().text("Hello, world!")));
Add a dynamic optional child:
let text = Mutable::new("hello");
div().optional_child(Sig(text.signal().map(|text| {
if text.is_empty() {
None
} else {
Some(div().text(text))
}
})));
sourcefn children<N>(self, children: impl IntoIterator<Item = N>) -> Self
fn children<N>(self, children: impl IntoIterator<Item = N>) -> Self
sourcefn children_signal<N>(
self,
children: impl SignalVec<Item = N> + 'static
) -> Self
fn children_signal<N>( self, children: impl SignalVec<Item = N> + 'static ) -> Self
Add children from a SignalVec
to the element.
See counter_list for an example
Provided Methods§
sourcefn child(self, child: impl SignalOrValue<Item = impl ChildNode<D>>) -> Self
fn child(self, child: impl SignalOrValue<Item = impl ChildNode<D>>) -> Self
Add a child to the element.
§Example
Add static children:
div().child(p().text("Hello,")).child(p().text("world!"));
Add a dynamic child:
let text = Mutable::new("Hello, world!");
div().child(Sig(text.signal().map(|text| div().text(text))));
Object Safety§
This trait is not object safe.