How to use conditionals without attaching it to an element?
In vue, we have got directives v-if which needs to be attached to element.
Is there a way to use conditionals without attaching them to anything like the mustachejs way?
I am looping through an array of words and it is adding div's in every word which is annoying
Here is my template
<div v-for="(str, index) in reference" :key="index">
<div v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</div>
<div v-else>
str
</div>
</div>
I would be nice if i could do it like this:|
if true
something goes here
else
other thing goes here
if
vue.js
add a comment |
In vue, we have got directives v-if which needs to be attached to element.
Is there a way to use conditionals without attaching them to anything like the mustachejs way?
I am looping through an array of words and it is adding div's in every word which is annoying
Here is my template
<div v-for="(str, index) in reference" :key="index">
<div v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</div>
<div v-else>
str
</div>
</div>
I would be nice if i could do it like this:|
if true
something goes here
else
other thing goes here
if
vue.js
You'd probably use a ternary in an expression, but we probably need to see some code to help you
– George Jempty
Nov 14 '18 at 13:09
@GeorgeJempty i have updated my question
– Raaz
Nov 14 '18 at 13:10
I'm not sure if this is what you want to achieve, that's why I'm posting this as an comment: jsfiddle.net/edsLrjmu/1 (Example contains two possible solutions)
– Jns
Nov 14 '18 at 13:46
add a comment |
In vue, we have got directives v-if which needs to be attached to element.
Is there a way to use conditionals without attaching them to anything like the mustachejs way?
I am looping through an array of words and it is adding div's in every word which is annoying
Here is my template
<div v-for="(str, index) in reference" :key="index">
<div v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</div>
<div v-else>
str
</div>
</div>
I would be nice if i could do it like this:|
if true
something goes here
else
other thing goes here
if
vue.js
In vue, we have got directives v-if which needs to be attached to element.
Is there a way to use conditionals without attaching them to anything like the mustachejs way?
I am looping through an array of words and it is adding div's in every word which is annoying
Here is my template
<div v-for="(str, index) in reference" :key="index">
<div v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</div>
<div v-else>
str
</div>
</div>
I would be nice if i could do it like this:|
if true
something goes here
else
other thing goes here
if
vue.js
vue.js
edited Nov 14 '18 at 13:10
Raaz
asked Nov 14 '18 at 13:07
RaazRaaz
7541031
7541031
You'd probably use a ternary in an expression, but we probably need to see some code to help you
– George Jempty
Nov 14 '18 at 13:09
@GeorgeJempty i have updated my question
– Raaz
Nov 14 '18 at 13:10
I'm not sure if this is what you want to achieve, that's why I'm posting this as an comment: jsfiddle.net/edsLrjmu/1 (Example contains two possible solutions)
– Jns
Nov 14 '18 at 13:46
add a comment |
You'd probably use a ternary in an expression, but we probably need to see some code to help you
– George Jempty
Nov 14 '18 at 13:09
@GeorgeJempty i have updated my question
– Raaz
Nov 14 '18 at 13:10
I'm not sure if this is what you want to achieve, that's why I'm posting this as an comment: jsfiddle.net/edsLrjmu/1 (Example contains two possible solutions)
– Jns
Nov 14 '18 at 13:46
You'd probably use a ternary in an expression, but we probably need to see some code to help you
– George Jempty
Nov 14 '18 at 13:09
You'd probably use a ternary in an expression, but we probably need to see some code to help you
– George Jempty
Nov 14 '18 at 13:09
@GeorgeJempty i have updated my question
– Raaz
Nov 14 '18 at 13:10
@GeorgeJempty i have updated my question
– Raaz
Nov 14 '18 at 13:10
I'm not sure if this is what you want to achieve, that's why I'm posting this as an comment: jsfiddle.net/edsLrjmu/1 (Example contains two possible solutions)
– Jns
Nov 14 '18 at 13:46
I'm not sure if this is what you want to achieve, that's why I'm posting this as an comment: jsfiddle.net/edsLrjmu/1 (Example contains two possible solutions)
– Jns
Nov 14 '18 at 13:46
add a comment |
2 Answers
2
active
oldest
votes
Here is your code but using the < template > tag
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
Here is a example from the official Vue documentation:
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address">
</template>
More informations: https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key
You can also use a Method and use normal Javascript into the < script > at the bottom of your file
Hope this helped, cheers
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
add a comment |
you could use the 'template' like so:
<template v-if=patternIncluded(str)>
//code
</template
<template v-else>
//code
</template>
UPDATE so like this
<div-for="(str, index) in reference" :key="index">
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
</div>
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300964%2fhow-to-use-conditionals-without-attaching-it-to-an-element%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Here is your code but using the < template > tag
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
Here is a example from the official Vue documentation:
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address">
</template>
More informations: https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key
You can also use a Method and use normal Javascript into the < script > at the bottom of your file
Hope this helped, cheers
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
add a comment |
Here is your code but using the < template > tag
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
Here is a example from the official Vue documentation:
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address">
</template>
More informations: https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key
You can also use a Method and use normal Javascript into the < script > at the bottom of your file
Hope this helped, cheers
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
add a comment |
Here is your code but using the < template > tag
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
Here is a example from the official Vue documentation:
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address">
</template>
More informations: https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key
You can also use a Method and use normal Javascript into the < script > at the bottom of your file
Hope this helped, cheers
Here is your code but using the < template > tag
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
Here is a example from the official Vue documentation:
<template v-if="loginType === 'username'">
<label>Username</label>
<input placeholder="Enter your username">
</template>
<template v-else>
<label>Email</label>
<input placeholder="Enter your email address">
</template>
More informations: https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key
You can also use a Method and use normal Javascript into the < script > at the bottom of your file
Hope this helped, cheers
edited Nov 14 '18 at 15:44
answered Nov 14 '18 at 15:27
CedCed
424217
424217
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
add a comment |
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
wrapping it inside a template too creates a div
– Raaz
Nov 15 '18 at 3:39
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
@Raaz you should replace the div with the v-if with the template: I have updated my answer
– Niels Lucas
Nov 15 '18 at 8:27
add a comment |
you could use the 'template' like so:
<template v-if=patternIncluded(str)>
//code
</template
<template v-else>
//code
</template>
UPDATE so like this
<div-for="(str, index) in reference" :key="index">
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
</div>
add a comment |
you could use the 'template' like so:
<template v-if=patternIncluded(str)>
//code
</template
<template v-else>
//code
</template>
UPDATE so like this
<div-for="(str, index) in reference" :key="index">
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
</div>
add a comment |
you could use the 'template' like so:
<template v-if=patternIncluded(str)>
//code
</template
<template v-else>
//code
</template>
UPDATE so like this
<div-for="(str, index) in reference" :key="index">
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
</div>
you could use the 'template' like so:
<template v-if=patternIncluded(str)>
//code
</template
<template v-else>
//code
</template>
UPDATE so like this
<div-for="(str, index) in reference" :key="index">
<template v-if="patternIncluded(str)">
<input type="text" v-model="remarks[index]">
</template>
<template v-else>
str
</template>
</div>
edited Nov 15 '18 at 8:29
answered Nov 14 '18 at 14:19
Niels LucasNiels Lucas
721113
721113
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53300964%2fhow-to-use-conditionals-without-attaching-it-to-an-element%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You'd probably use a ternary in an expression, but we probably need to see some code to help you
– George Jempty
Nov 14 '18 at 13:09
@GeorgeJempty i have updated my question
– Raaz
Nov 14 '18 at 13:10
I'm not sure if this is what you want to achieve, that's why I'm posting this as an comment: jsfiddle.net/edsLrjmu/1 (Example contains two possible solutions)
– Jns
Nov 14 '18 at 13:46