Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v-text-input trying to load v-model without fallback #58

Closed
mfferreira opened this issue Dec 31, 2016 · 5 comments
Closed

v-text-input trying to load v-model without fallback #58

mfferreira opened this issue Dec 31, 2016 · 5 comments
Assignees
Labels
T: bug Functionality that does not work as intended/expected

Comments

@mfferreira
Copy link
Contributor

Doing something like this will fail.
Data:

foo: {}

Template:

v-text-input( label="Error" v-model="foo.bar.willfail" )

Error:
TypeError: Cannot read property 'willfail' of undefined

The render should fail gracefully and have a fallback to an empty string or null in case the property doesn't exist, like Vue does for <input>

@johnleider johnleider self-assigned this Dec 31, 2016
@johnleider johnleider added the T: bug Functionality that does not work as intended/expected label Dec 31, 2016
@johnleider
Copy link
Member

After looking into this. The regular input from vue will only gracefully fallback at the first property, so foo.bar will pass to the input as undefined with no value. This is true for both v-text-input and a regular input with vue. Adding the 3rd level of property will cause an error on both scenarios. This seems like intended behavior and is inline with the normal reaction from javascript on attempting to access a property of an undefined variable.

I'll leave this open for now. Could you provide an example of the graceful fallback on a regular input with vue that maybe I'm missing?

@mfferreira
Copy link
Contributor Author

Maybe it was changed in Vue 2, but I have a dashboard with several <input> in the same page, and none spit out errors.

<div class="row">
	<div class="input-field col s12">
		<input id="selectedResource.logentriesToken" type="text" v-model="selectedResource.serviceTokens.logentries"></input>
		<label for="selectedResource.logentriesToken">Logentries Token</label>
	</div>
</div>

That project is not using any build system either, it's just importing JS from cdn, in case that matters.

@johnleider
Copy link
Member

As far as I can tell, this does not work like that in Vue 2. There shouldn't be an instance where you have a model binded that could be undefined on two levels.

@mfferreira
Copy link
Contributor Author

That's true. For some reason this has been working on my dash with Vue 1. I'll move these v-model to use computed properties.

windhorn added a commit to windhorn/vuetify that referenced this issue Sep 20, 2018
When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See vuetifyjs#23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50
windhorn added a commit to windhorn/vuetify that referenced this issue Sep 20, 2018
When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See vuetifyjs#23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50
lzhoucs added a commit to lzhoucs/vuetify that referenced this issue Oct 3, 2018
* Filter comments to count actual rendered elements

* Remove unnecesary conditional

* Filter out VNodes with empty text

* fix(VImg): allow transition to be disabled

* fix(v-combobox): update onEnterDown logic

should let v-select-list handle the update if user is selecting index

fixes vuetifyjs#5008

* fix(v-slider): remove duplicate change event

onMouseUp is already triggered by v-input, our mouseUp usage is more internal for slider, just
renamed method

fixes vuetifyjs#4996

* fix(v-combobox): prevent default action

when using a combobox, enter should be treated differently and not invoke a form submit

fixes vuetifyjs#4974

* fix(VMenu): make detached provide reactive

fixes vuetifyjs#5010

* fix(VBreadcrumbs): add Themeable classes

fixes vuetifyjs#4986

* Fix vuetifyjs#3904: dividers are not shown in dynamic vertical stepper (vuetifyjs#4767)

* Fix vuetifyjs#4696: Checkbox is hard to click with ripple disabled (vuetifyjs#4776)

* test(v-stepper-ccontent): add provide

* [release] 1.2.2

* V-Autocomplete: hide-no-data also controls opening menu upon item update

fixes vuetifyjs#4663

* fix(v-footer): fix applicationProperty update

add new value for inset footer to applicationable

fixes vuetifyjs#4686

* [release] 1.1.16

* [release] 1.2.3

* fix(VMenu): inherit light/dark from v-app

playground: https://pastebin.com/raw/jtLrtVtP

* fix(DatePicker): Title spacing when month === August (vuetifyjs#5027)

* fix(v-autocomplete): add conditional for single-line

fixes vuetifyjs#5076

* fix(v-list-tile-action): add support for v-html

fixes vuetifyjs#5037

* fix(v-navigation-drawer): pull in Dependent mixin for click-outside

* feat(v-carousel): convert to ts

* refactor(v-carousel): update review items

* chore(v-carousel): update type

* refactor(v-carousel): update feedback items

* feat(dependent): convert to ts

* feat(filterable): convert to ts

* feat(returnable): convert to ts

* feat(components-index): convert to ts

* feat(colorable): convert to ts

* refactor(colors.d.ts): move file

* fix(translatable): partially revert 5f661a3

reverted back to original logic to correct scrolling bug

fixes vuetifyjs#4847

* [release] 1.2.4

* style(v-pagination): button cutting the page number

When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See #23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

* fix(iterable): rows-per-page selector not inheriting theme

* [release] 1.2.5

* fix(VStepperStep): use colorable mixin

fixes vuetifyjs#5183

* test for vuetifyjs#5183

* Fix vuetifyjs#4760: show next pagination page if current page is last

* [release] 1.2.6
lzhoucs added a commit to lzhoucs/vuetify that referenced this issue Oct 10, 2018
* Filter comments to count actual rendered elements

* Remove unnecesary conditional

* Filter out VNodes with empty text

* fix(VImg): allow transition to be disabled

* fix(v-combobox): update onEnterDown logic

should let v-select-list handle the update if user is selecting index

fixes vuetifyjs#5008

* fix(v-slider): remove duplicate change event

onMouseUp is already triggered by v-input, our mouseUp usage is more internal for slider, just
renamed method

fixes vuetifyjs#4996

* fix(v-combobox): prevent default action

when using a combobox, enter should be treated differently and not invoke a form submit

fixes vuetifyjs#4974

* fix(VMenu): make detached provide reactive

fixes vuetifyjs#5010

* fix(VBreadcrumbs): add Themeable classes

fixes vuetifyjs#4986

* Fix vuetifyjs#3904: dividers are not shown in dynamic vertical stepper (vuetifyjs#4767)

* Fix vuetifyjs#4696: Checkbox is hard to click with ripple disabled (vuetifyjs#4776)

* test(v-stepper-ccontent): add provide

* [release] 1.2.2

* V-Autocomplete: hide-no-data also controls opening menu upon item update

fixes vuetifyjs#4663

* fix(v-footer): fix applicationProperty update

add new value for inset footer to applicationable

fixes vuetifyjs#4686

* [release] 1.1.16

* [release] 1.2.3

* fix(VMenu): inherit light/dark from v-app

playground: https://pastebin.com/raw/jtLrtVtP

* fix(DatePicker): Title spacing when month === August (vuetifyjs#5027)

* fix(v-autocomplete): add conditional for single-line

fixes vuetifyjs#5076

* fix(v-list-tile-action): add support for v-html

fixes vuetifyjs#5037

* fix(v-navigation-drawer): pull in Dependent mixin for click-outside

* feat(v-carousel): convert to ts

* refactor(v-carousel): update review items

* chore(v-carousel): update type

* refactor(v-carousel): update feedback items

* feat(dependent): convert to ts

* feat(filterable): convert to ts

* feat(returnable): convert to ts

* feat(components-index): convert to ts

* feat(colorable): convert to ts

* refactor(colors.d.ts): move file

* fix(translatable): partially revert 5f661a3

reverted back to original logic to correct scrolling bug

fixes vuetifyjs#4847

* [release] 1.2.4

* style(v-pagination): button cutting the page number

When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See #23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

* fix(iterable): rows-per-page selector not inheriting theme

* [release] 1.2.5

* fix(VStepperStep): use colorable mixin

fixes vuetifyjs#5183

* test for vuetifyjs#5183

* Fix vuetifyjs#4760: show next pagination page if current page is last

* [release] 1.2.6

* fix(v-radio): remove bottom margin

if only or last child, do not add margin

fixes vuetifyjs#5162

* fix(v-autocomplete): allow setSearch for numeric 0

fixes vuetifyjs#5110

* [v-tab] Fix anchor hash routing (vuetifyjs#5124)

* fix(v-messages): change assigned key

fixes vuetifyjs#4880

* fix(v-select): remove change event for external changes

fixes vuetifyjs#5006

* fix(v-text-field): change mouseup focus to conditional

should only focus the input if the originating mousedown was on the element

fixes vuetifyjs#5018

* fix(VLinearProgress): invalid class applied when using css color

* fix(VEditDialog): apply theme classes to content (vuetifyjs#5152)

* fix(VEditDialog): apply theme classes to content

fixes vuetifyjs#5127

* test: update snapshots

* [release] 1.2.7

* Update snapshots after merge.
lzhoucs added a commit to lzhoucs/vuetify that referenced this issue Oct 10, 2018
* Filter comments to count actual rendered elements

* Remove unnecesary conditional

* Filter out VNodes with empty text

* fix(VImg): allow transition to be disabled

* fix(v-combobox): update onEnterDown logic

should let v-select-list handle the update if user is selecting index

fixes vuetifyjs#5008

* fix(v-slider): remove duplicate change event

onMouseUp is already triggered by v-input, our mouseUp usage is more internal for slider, just
renamed method

fixes vuetifyjs#4996

* fix(v-combobox): prevent default action

when using a combobox, enter should be treated differently and not invoke a form submit

fixes vuetifyjs#4974

* fix(VMenu): make detached provide reactive

fixes vuetifyjs#5010

* fix(VBreadcrumbs): add Themeable classes

fixes vuetifyjs#4986

* Fix vuetifyjs#3904: dividers are not shown in dynamic vertical stepper (vuetifyjs#4767)

* Fix vuetifyjs#4696: Checkbox is hard to click with ripple disabled (vuetifyjs#4776)

* test(v-stepper-ccontent): add provide

* [release] 1.2.2

* V-Autocomplete: hide-no-data also controls opening menu upon item update

fixes vuetifyjs#4663

* fix(v-footer): fix applicationProperty update

add new value for inset footer to applicationable

fixes vuetifyjs#4686

* [release] 1.1.16

* [release] 1.2.3

* fix(VMenu): inherit light/dark from v-app

playground: https://pastebin.com/raw/jtLrtVtP

* fix(DatePicker): Title spacing when month === August (vuetifyjs#5027)

* fix(v-autocomplete): add conditional for single-line

fixes vuetifyjs#5076

* fix(v-list-tile-action): add support for v-html

fixes vuetifyjs#5037

* fix(v-navigation-drawer): pull in Dependent mixin for click-outside

* feat(v-carousel): convert to ts

* refactor(v-carousel): update review items

* chore(v-carousel): update type

* refactor(v-carousel): update feedback items

* feat(dependent): convert to ts

* feat(filterable): convert to ts

* feat(returnable): convert to ts

* feat(components-index): convert to ts

* feat(colorable): convert to ts

* refactor(colors.d.ts): move file

* fix(translatable): partially revert 5f661a3

reverted back to original logic to correct scrolling bug

fixes vuetifyjs#4847

* [release] 1.2.4

* style(v-pagination): button cutting the page number

When props:length is a very large number,
the number of the button protrudes.

# <type>: (If applied, this commit will...) <subject> (Max 50 char)
# |<----  Using a Maximum Of 50 Characters  ---->| Hard limit to 72 -->|

# Explain why this change is being made
# |<----   Try To Limit Each Line to a Maximum Of 72 Characters   ---->|

# Provide links to any relevant issues, articles, commits, or other
# pull requests
# Example: See #23, fixes vuetifyjs#58

# --- COMMIT END ---
# <type> can be
#    feat     (new feature)
#    fix      (bug fix)
#    refactor (refactoring production code)
#    style    (formatting, missing semi colons, etc; no code change)
#    test     (adding or refactoring tests; no production code change)
#    chore    (updating npm scripts etc; no production code change)
# --------------------
# Remember to
#    Capitalize the subject line
#    Use the imperative mood in the subject line
#    Do not end the subject line with a period
#    Separate subject from body with a blank line (comments don't count)
#    Use the body to explain what and why vs. how
#    Can use multiple lines with "-" for bullet points in body
#
# If you can't summarize your changes in a single line, they should
# probably be split into multiple commits
# --------------------
# For more information about this template, check out
# https://gist.github.com/adeekshith/cd4c95a064977cdc6c50

* fix(iterable): rows-per-page selector not inheriting theme

* [release] 1.2.5

* fix(VStepperStep): use colorable mixin

fixes vuetifyjs#5183

* test for vuetifyjs#5183

* Fix vuetifyjs#4760: show next pagination page if current page is last

* [release] 1.2.6

* fix(v-radio): remove bottom margin

if only or last child, do not add margin

fixes vuetifyjs#5162

* fix(v-autocomplete): allow setSearch for numeric 0

fixes vuetifyjs#5110

* [v-tab] Fix anchor hash routing (vuetifyjs#5124)

* fix(v-messages): change assigned key

fixes vuetifyjs#4880

* fix(v-select): remove change event for external changes

fixes vuetifyjs#5006

* fix(v-text-field): change mouseup focus to conditional

should only focus the input if the originating mousedown was on the element

fixes vuetifyjs#5018

* fix(VLinearProgress): invalid class applied when using css color

* fix(VEditDialog): apply theme classes to content (vuetifyjs#5152)

* fix(VEditDialog): apply theme classes to content

fixes vuetifyjs#5127

* test: update snapshots

* [release] 1.2.7

* fix(v-ripple): decrease click target size on selection control ripple (vuetifyjs#5250)

hopefully removes instances where click targets overlap between adjacent inputs

closes vuetifyjs#2661

* fix(v-stepper): add registrable mixin

fixes vuetifyjs#3330

* fix(v-select): change isDisabled conditional

should use regular text color when readonly

fixes vuetifyjs#5051

* fix(v-dialog): always remove scrollbar when fullscreen

fixes vuetifyjs#3101

* fix(v-ripple): only modify position if current one is static (vuetifyjs#5249)

* fix(v-ripple): only modify position if current one is static

solves problems when using for example position sticky

closes vuetifyjs#2573

* chore(ripple): ignore eslint for max-statements

* [release] 1.2.8
KaelWD pushed a commit that referenced this issue Oct 28, 2018
@lock
Copy link

lock bot commented Apr 17, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. Please direct any non-bug questions to our Discord

@lock lock bot locked as resolved and limited conversation to collaborators Apr 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
T: bug Functionality that does not work as intended/expected
Projects
None yet
Development

No branches or pull requests

2 participants