来自 JSON 的 VueJS 中的语言

Posted

技术标签:

【中文标题】来自 JSON 的 VueJS 中的语言【英文标题】:Language in VueJS from JSON 【发布时间】:2017-05-25 11:08:45 【问题描述】:

我正在尝试将区域设置语言变量从 JSON 请求(laravel 生成)加载到 VueJS,因为 VueJS 不支持开箱即用的区​​域设置。就绪功能警报不会发出警报,但随机文本数据变量确实有效。我知道 VueJS 加载正确。没有控制台错误,并且 webpack 编译了 vue。 lang 数组显示为空,而 lang.email 显示为空白。这是我的问题。任何帮助表示赞赏。

const app = new Vue(
    el: '#app',
    data: 
      lang: [],
      randomtext: 'This is Random Text'
    ,
    ready: function() 
      alert('THIS DOES NOT ALERT');
      this.getLanguage();
     ,
     methods: 
       getLanguage: function() 
         this.$http.get('/lang/auth').then((response) => 
            this.$set("lang", response)
          , (response) => 
            alert(response);
          );
       
     
);

“语言/身份验证”

"email":"Email Address","password":"Password"

我的html

 <h5 class="content-group">@ randomtext </h5> // This Works
 <input type="text" class="form-control" :placeholder="lang.email"> // This does not

【问题讨论】:

你使用的是哪个版本的 vuejs?你用的是 2.x 吗? @MacPrawn 我正在运行 2.0.1 好的 - “ready”在 2.0 中已被弃用...尝试使用“mounted”——请参阅 vuejs.org/v2/guide/migration.html#ready-replaced @MacPrawn 谢谢你,这就是问题所在。我在看一个教程,里面没有提到版本。 既然提供了有效的答案,也许@MacPrawn 可以把它作为答案,这样这个问题就不会显示为未回答 【参考方案1】:

确实,“准备好”是deprecated in Vue.js 2

尝试改用“mounted”。

【讨论】:

【参考方案2】:

首先,将ready:改成mounted:

(因为 vuejs 版本 2 已经不支持了)

第二,不要使用this.$set,而是使用this.lang = response

这是完整的代码 https://jsfiddle.net/uqp7f4zL/

【讨论】:

以上是关于来自 JSON 的 VueJS 中的语言的主要内容,如果未能解决你的问题,请参考以下文章

Swift 语言中的 JSON

什么是json

什么是json

Vue JS - 如果来自两个不同 json 数组的两个字符串匹配,则显示数据

VueJS 异步检测语言与 Yandex Translate API

查看语言环境并再次获取文章 - Vuejs