o-g-r
@o-g-r (yamada hanako)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

vueで三項演算子は使用できるのでしょうか?

解決したいこと

vueで取得したデータを三項演算子を使用して表示したい

@{{ (substr(task.id, 0 ,1) == 'U')?task.name:task.group }}
この書き方だとエラーでます。

それぞれbladeで
@{{task.id}}
@{{task.name}}
@{{task.group}}
では表示できています。

vueが初心者のためよくわかっていません。ご教授頂けると助かります。
三項演算子にこだわっているわけでなく、if文が使えればと思います。

0

2Answer

使えます。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<script src="https://unpkg.com/vue@next"></script>
</head>
<body>

<div id="vue_app">
  <div>三項演算子(真): {{ hoge == "hogehoge" ? fuga : piyo }}</div>
  <div>三項演算子(偽): {{ hoge == "HOGEHOGE" ? fuga : piyo }}</div>
</div>

<script>
Vue.createApp({
  data() {
    return {
      hoge: "hogehoge",
      fuga: "fugafuga",
      piyo: "piyopiyo",
    }
  }
}).mount('#vue_app');
</script>

</body>
</html>
1Like

Comments

  1. @o-g-r

    Questioner

    早速ありがとうございます。
    三項演算子が使えないのではないですね。すみません。テスト不足です。
    substrが使えないもしくは使い方悪いようです。
    もしわかるようであれば教えて頂けないでしょうか?
  2. 質問文にはエラーメッセージを含めるようにしましょう。
    また「エラーでます」や「上手く動きません」というだけでなく、具体的にどういう結果になったかを書きましょう。

    とりあえずjavascriptにはどこかでそれを定義しない限りsubstrという関数は存在しないので、"substr is not defined"とかのエラーが出てるんじゃないかという気はしますけどね。

JavaScriptにsubstr()はあるにはありますが,ECMAScript標準でない古いメソッドとみなされています.

These features are not considered part of the core ECMAScript language. Programmers should not use or assume the existence of these features and behaviours when writing new ECMAScript code.

代わりにString.prototype.substring()を使用してください.substr()とは引数の指定方法が異なるので,注意して実装してください.

0Like

Your answer might help someone💌