Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 March 30

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
но вообще через плагин помоему проще, например где у вас там i18n, store
источник

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
аксиос тот же
источник

T

Tim in Nuxt.js — русскоговорящее сообщество
Андрей Назаров
но вообще через плагин помоему проще, например где у вас там i18n, store
Это и есть через плагин, то что я писал) Спасибо
источник

NE

New Era in Nuxt.js — русскоговорящее сообщество
Парни, вопрос, не могу найти причину ошибки, есть часть кода
const { Router } = require("express");
const Course = require("../models/course");
const User = require("../models/user");
const router = Router();

router.post("/add", async (req, res) => {
 const course = await Course.findById(req.body.id);
 await User.addToCart(course);
 res.redirect("/card");
});


и есть модуль

const {Schema, model} = require('mongoose')

const userSchema = new Schema({
 email: {
   type: String,
   required: true
 },
 name: {
   type: String,
   required: true
 },
 cart: {
   items: [
     {
       count: {
         type: Number,
         required: true,
         default: 1
       },
       courseId: {
         type: Schema.Types.ObjectId,
         ref: 'Course',
         required: true
       }
     }
   ]
 }
})


userSchema.methods.addToCart = function(course) {
 console.log(course)
}

module.exports = model('User', userSchema)

При вызове модуля появляется ошибка :
User.addToCart is not a function ну и собственно хз из за чего, раз 20 перепроверил, вроде все правильно
источник

AP

Alexander Proydenko in Nuxt.js — русскоговорящее сообщество
New Era
Парни, вопрос, не могу найти причину ошибки, есть часть кода
const { Router } = require("express");
const Course = require("../models/course");
const User = require("../models/user");
const router = Router();

router.post("/add", async (req, res) => {
 const course = await Course.findById(req.body.id);
 await User.addToCart(course);
 res.redirect("/card");
});


и есть модуль

const {Schema, model} = require('mongoose')

const userSchema = new Schema({
 email: {
   type: String,
   required: true
 },
 name: {
   type: String,
   required: true
 },
 cart: {
   items: [
     {
       count: {
         type: Number,
         required: true,
         default: 1
       },
       courseId: {
         type: Schema.Types.ObjectId,
         ref: 'Course',
         required: true
       }
     }
   ]
 }
})


userSchema.methods.addToCart = function(course) {
 console.log(course)
}

module.exports = model('User', userSchema)

При вызове модуля появляется ошибка :
User.addToCart is not a function ну и собственно хз из за чего, раз 20 перепроверил, вроде все правильно
источник

AP

Alexander Proydenko in Nuxt.js — русскоговорящее сообщество
userSchema.methods.addToCart
вместо этого попробуй
userSchema.method('addToCart', function(){})
источник

T

Tim in Nuxt.js — русскоговорящее сообщество
Как правильнее всего получить доступ к функции nuxt-i18n $t() из геттера  Vuex? Вижу варианты
- передать забинденную функцию в getter в качестве параметра
- передать весь vm
- инжектить весь vm в store в момент создания (жуткий оверкилл на мой взгляд)
- может как-то ещё можно?
источник

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
никак
источник

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
Tim
Как правильнее всего получить доступ к функции nuxt-i18n $t() из геттера  Vuex? Вижу варианты
- передать забинденную функцию в getter в качестве параметра
- передать весь vm
- инжектить весь vm в store в момент создания (жуткий оверкилл на мой взгляд)
- может как-то ещё можно?
просто в компоненте уже $t делайте
источник

AP

Alexander Proydenko in Nuxt.js — русскоговорящее сообщество
Tim
Как правильнее всего получить доступ к функции nuxt-i18n $t() из геттера  Vuex? Вижу варианты
- передать забинденную функцию в getter в качестве параметра
- передать весь vm
- инжектить весь vm в store в момент создания (жуткий оверкилл на мой взгляд)
- может как-то ещё можно?
источник

T

Tim in Nuxt.js — русскоговорящее сообщество
Спасибо. Это не считается какой-то плохой практикой?
источник

AP

Alexander Proydenko in Nuxt.js — русскоговорящее сообщество
Tim
Спасибо. Это не считается какой-то плохой практикой?
можно в nuxtServerInit сделать
store.$t = app.i18n.t;
источник

AP

Alexander Proydenko in Nuxt.js — русскоговорящее сообщество
и в сторе использовать this.$t
источник

T

Tim in Nuxt.js — русскоговорящее сообщество
Alexander Proydenko
можно в nuxtServerInit сделать
store.$t = app.i18n.t;
О, это вообще отлично
источник

AP

Alexander Proydenko in Nuxt.js — русскоговорящее сообщество
и если надо, повторить в nuxtClientInit, чтобы в рантайме не словить ошибку
источник

T

Tim in Nuxt.js — русскоговорящее сообщество
Alexander Proydenko
и если надо, повторить в nuxtClientInit, чтобы в рантайме не словить ошибку
Хм, оно уже в this геттера почему-то
источник

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
у меня почемуто есть смутное сомнение почему создали nuxt-18n не добавили в геттеры $t
источник

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
а тока в мутации и экшены
источник

T

Tim in Nuxt.js — русскоговорящее сообщество
Что-то странное. Если через mapGetters, то $t в геттере доступно, а если инлайново из компонента через $store.getters, то undefined
источник

АН

Андрей Назаров in Nuxt.js — русскоговорящее сообщество
Tim
Что-то странное. Если через mapGetters, то $t в геттере доступно, а если инлайново из компонента через $store.getters, то undefined
видимо поэтому))
источник