[−][src]Struct seed::virtual_dom::el_ref::ElRef
DOM element reference. You want to use it instead of DOM selectors to get raw DOM elements.
Note: Cloning is cheap, it uses only phantom data and Rc
under the hood.
Example
#[derive(Default)] struct Model { canvas: ElRef<web_sys::HtmlCanvasElement>, } fn view(model: &Model) -> impl View<Msg> { canvas![ el_ref(&model.canvas), attrs![ At::Width => px(200), At::Height => px(100), ], ] } fn after_mount(_: Url, orders: &mut impl Orders<Msg>) -> AfterMount<Model> { orders.after_next_render(|_| Msg::Rendered); // ... fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) { match msg { Msg::Rendered => { let canvas = canvas.get().expect("get canvas element"); // ... orders.after_next_render(|_| Msg::Rendered).skip(); } // ...
Fields
Methods
impl<E: Clone + JsCast> ElRef<E>
[src]
pub fn new() -> Self
[src]
pub fn get(&self) -> Option<E>
[src]
Get referenced DOM element.
It returns Some(element)
when:
- An associated DOM element has been already attached during render.
- The DOM element is still a part of the current DOM.
- The DOM element has the same type like
ElRef
.
pub fn map_type<T>(&self) -> ElRef<T>
[src]
Map ElRef
type.
-
It just changes type saved in the phantom - it's cheap.
-
It's useful when you have, for instance,
ElRef<HtmlInputElement>
and want to focus the referenced input.HtmlInputElement
doesn't have methodfocus
, but parent interfaceHtmlElement
has.
Example
let input: ElRef<HtmlInputElement> = model.refs.my_input.clone(); orders.after_next_render(move |_| { input .map_type::<HtmlElement>() .get() .expect("get `my_input`") .focus() .expect("focus 'my_input'"); Msg::NoOp });
Trait Implementations
impl<E: Clone> Clone for ElRef<E>
[src]
impl<E> Default for ElRef<E>
[src]
impl<Ms, E: Clone> UpdateEl<El<Ms>> for ElRef<E>
[src]
Auto Trait Implementations
impl<E> !RefUnwindSafe for ElRef<E>
impl<E> !Send for ElRef<E>
impl<E> !Sync for ElRef<E>
impl<E> Unpin for ElRef<E> where
E: Unpin,
E: Unpin,
impl<E> !UnwindSafe for ElRef<E>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,