pub struct Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + 'static,
R: Get<Value = T> + Clone + 'static,
W: Update<Value = T>,{ /* private fields */ }
Expand description
Two-way binding of an attribute and an event listener
Implementations§
Source§impl<Key, T, R, W> Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
R: Get<Value = T> + Clone + Send + Sync + 'static,
W: Update<Value = T> + Clone + 'static,
Element: ChangeEvent + GetValue<T>,
impl<Key, T, R, W> Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
R: Get<Value = T> + Clone + Send + Sync + 'static,
W: Update<Value = T> + Clone + 'static,
Element: ChangeEvent + GetValue<T>,
Sourcepub fn attach(self, el: &Element) -> RemoveEventHandler<Element>
pub fn attach(self, el: &Element) -> RemoveEventHandler<Element>
Attaches the event listener that updates the signal value to the element.
Sourcepub fn read_signal(&self, el: &Element) -> Signal<BoolOrT<T>>
pub fn read_signal(&self, el: &Element) -> Signal<BoolOrT<T>>
Creates the signal to update the value of the attribute. This signal is different
when using a "group"
attribute
Trait Implementations§
Source§impl<Key, T, R, W> Attribute for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
R: Get<Value = T> + Clone + Send + Sync + 'static,
Signal<BoolOrT<T>>: IntoProperty,
W: Update<Value = T> + Clone + Send + 'static,
Element: ChangeEvent + GetValue<T>,
impl<Key, T, R, W> Attribute for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
R: Get<Value = T> + Clone + Send + Sync + 'static,
Signal<BoolOrT<T>>: IntoProperty,
W: Update<Value = T> + Clone + Send + 'static,
Element: ChangeEvent + GetValue<T>,
Source§const MIN_LENGTH: usize = 0usize
const MIN_LENGTH: usize = 0usize
The minimum length of this attribute in HTML.
Source§type State = (<Signal<BoolOrT<T>> as IntoProperty>::State, (Element, Option<RemoveEventHandler<Element>>))
type State = (<Signal<BoolOrT<T>> as IntoProperty>::State, (Element, Option<RemoveEventHandler<Element>>))
The state that should be retained between building and rebuilding.
Source§type AsyncOutput = Bind<Key, T, R, W>
type AsyncOutput = Bind<Key, T, R, W>
The type once all async data have loaded.
Source§type Cloneable = Bind<Key, T, R, W>
type Cloneable = Bind<Key, T, R, W>
An equivalent to this attribute that can be cloned to be shared across elements.
Source§type CloneableOwned = Bind<Key, T, R, W>
type CloneableOwned = Bind<Key, T, R, W>
An equivalent to this attribute that can be cloned to be shared across elements, and
captures no references shorter than
'static
.Source§fn to_html(
self,
_buf: &mut String,
_class: &mut String,
_style: &mut String,
_inner_html: &mut String,
)
fn to_html( self, _buf: &mut String, _class: &mut String, _style: &mut String, _inner_html: &mut String, )
Renders the attribute to HTML. Read more
Source§fn hydrate<const FROM_SERVER: bool>(
self,
el: &Element,
) -> <Bind<Key, T, R, W> as Attribute>::State
fn hydrate<const FROM_SERVER: bool>( self, el: &Element, ) -> <Bind<Key, T, R, W> as Attribute>::State
Adds interactivity as necessary, given DOM nodes that were created from HTML that has
either been rendered on the server, or cloned for a
<template>
.Source§fn build(self, el: &Element) -> <Bind<Key, T, R, W> as Attribute>::State
fn build(self, el: &Element) -> <Bind<Key, T, R, W> as Attribute>::State
Adds this attribute to the element during client-side rendering.
Source§fn rebuild(self, state: &mut <Bind<Key, T, R, W> as Attribute>::State)
fn rebuild(self, state: &mut <Bind<Key, T, R, W> as Attribute>::State)
Applies a new value for the attribute.
Source§fn into_cloneable(self) -> <Bind<Key, T, R, W> as Attribute>::Cloneable
fn into_cloneable(self) -> <Bind<Key, T, R, W> as Attribute>::Cloneable
Converts this attribute into an equivalent that can be cloned.
Source§fn into_cloneable_owned(
self,
) -> <Bind<Key, T, R, W> as Attribute>::CloneableOwned
fn into_cloneable_owned( self, ) -> <Bind<Key, T, R, W> as Attribute>::CloneableOwned
Converts this attributes into an equivalent that can be cloned and is
'static
.Source§fn dry_resolve(&mut self)
fn dry_resolve(&mut self)
“Runs” the attribute without other side effects. For primitive types, this is a no-op. For
reactive types, this can be used to gather data about reactivity or about asynchronous data
that needs to be loaded.
Source§impl<Key, T, R, W> Clone for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + 'static,
R: Get<Value = T> + Clone + 'static,
W: Update<Value = T> + Clone,
impl<Key, T, R, W> Clone for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + 'static,
R: Get<Value = T> + Clone + 'static,
W: Update<Value = T> + Clone,
Source§impl<Key, T, R, W> Debug for Bind<Key, T, R, W>where
Key: Debug + AttributeKey,
T: Debug + FromEventTarget + AttributeValue + 'static,
R: Debug + Get<Value = T> + Clone + 'static,
W: Debug + Update<Value = T>,
impl<Key, T, R, W> Debug for Bind<Key, T, R, W>where
Key: Debug + AttributeKey,
T: Debug + FromEventTarget + AttributeValue + 'static,
R: Debug + Get<Value = T> + Clone + 'static,
W: Debug + Update<Value = T>,
Source§impl<Key, T, R, W> NextAttribute for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
R: Get<Value = T> + Clone + Send + Sync + 'static,
Signal<BoolOrT<T>>: IntoProperty,
W: Update<Value = T> + Clone + Send + 'static,
Element: ChangeEvent + GetValue<T>,
impl<Key, T, R, W> NextAttribute for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + PartialEq + Sync + 'static,
R: Get<Value = T> + Clone + Send + Sync + 'static,
Signal<BoolOrT<T>>: IntoProperty,
W: Update<Value = T> + Clone + Send + 'static,
Element: ChangeEvent + GetValue<T>,
Source§impl<Key, T, R, W> ToTemplate for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + 'static,
R: Get<Value = T> + Clone + 'static,
W: Update<Value = T> + Clone,
impl<Key, T, R, W> ToTemplate for Bind<Key, T, R, W>where
Key: AttributeKey,
T: FromEventTarget + AttributeValue + 'static,
R: Get<Value = T> + Clone + 'static,
W: Update<Value = T> + Clone,
Source§fn to_template(
_buf: &mut String,
_class: &mut String,
_style: &mut String,
_inner_html: &mut String,
_position: &mut Position,
)
fn to_template( _buf: &mut String, _class: &mut String, _style: &mut String, _inner_html: &mut String, _position: &mut Position, )
Renders a view type to a template. This does not take actual view data,
but can be used for constructing part of an HTML
<template>
that corresponds
to a view of a particular type.Auto Trait Implementations§
impl<Key, T, R, W> Freeze for Bind<Key, T, R, W>
impl<Key, T, R, W> RefUnwindSafe for Bind<Key, T, R, W>
impl<Key, T, R, W> Send for Bind<Key, T, R, W>
impl<Key, T, R, W> Sync for Bind<Key, T, R, W>
impl<Key, T, R, W> Unpin for Bind<Key, T, R, W>
impl<Key, T, R, W> UnwindSafe for Bind<Key, T, R, W>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoAnyAttribute for T
impl<T> IntoAnyAttribute for T
Source§fn into_any_attr(self) -> AnyAttribute
fn into_any_attr(self) -> AnyAttribute
Wraps the given attribute.
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> StorageAccess<T> for T
impl<T> StorageAccess<T> for T
Source§fn as_borrowed(&self) -> &T
fn as_borrowed(&self) -> &T
Borrows the value.
Source§fn into_taken(self) -> T
fn into_taken(self) -> T
Takes the value.