,
actions: {
async nuxtServerInit ({ commit }, { req }) {
let { data } = await axios.get('https://jsonplaceholder.typicode.com/users')
commit('setNews', data)
}
}
validate ({ params, store }) {
// Check if `params.id` is an existing category
store.state.news.forEach(function(item) {
if (item.username === params.id) {
return true
}
});
}
Но вот хоть тресни, validate() не работает. Хотя если делаю простую проверку, типа:validate ({ params, store }) {
// Check if `params.id` is an existing category
/*
store.state.news.forEach(function(item) {
if (item.username === params.id) {
return true
}
});
*/
if ('Bret' === params.id) {
return true
}
}
, то страница /news/Bret доступна, другие соот-но нет. Т.е. работает как надо. import axios from 'axios'
import { mapState } from 'vuex'
import { mapMutations } from 'vuex'
import { mapActions } from 'vuex'
import PageHeader from '~/components/header.vue'
import FooTer from '~/components/footer.vue'
export default {
components: { PageHeader, FooTer },
computed:{
...mapState(['news'])
},
validate ({ params, news }) {
// Check if `params.id` is an existing category
news.forEach(function(item) {
if (item.username === params.id) {
return true
}
});
},
async fetch ({ store, params }) {
let { data } = await axios.get('https://jsonplaceholder.typicode.com/users')
store.commit('setNews', data)
}
}
async fetch ({ store, params }) {
let { data } = await axios.get('https://jsonplaceholder.typicode.com/users')
store.commit('setNews', data)
},
validate ({ params, news }) {
// Check if `params.id` is an existing category
news.forEach(function(item) {
if (item.username === params.id) {
return true
}
});
}
validate ({ params, this.news }) {
// Check if `params.id` is an existing category
this.news.forEach(function(item) {
if (item.username === params.id) {
return true
}
});
то страница ругается. Если использовать просто new, то ничего не работает. Пробывал передавать в validate store и вызывать там уже store.state.news
- все равно не помогает. В чем может быть ошибка? import axios from 'axios'
import { mapState } from 'vuex'
import { mapMutations } from 'vuex'
import { mapActions } from 'vuex'
import PageHeader from '~/components/header.vue'
import FooTer from '~/components/footer.vue'
export default {
components: { PageHeader, FooTer },
computed:{
mapState(['stars'])
},
async fetch ({ store, params }) {
let { data } = await axios.get('https://jsonplaceholder.typicode.com/users')
store.commit('setStars', data)
}
}
страница ругается на строку "mapState(['stars'])". Как правильно добавить computed?import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = () => new Vuex.Store({
state: {
counter: 0
},
mutations: {
increment (state) {
state.counter++
}
}
})
export default store
<div class="form_vk_save">
<div style="clear:both;"></div>
<h3>или напишите комментарий анонимно...</h3>
<input type="text" name="vk_name" placeholder="Ваше имя" value='' class="form-control send_vk_name">
<h4 class="for_reply"></h4>
<input type="hidden" class="send-id-reply" value="0">
<input type="hidden" class="send-status-reply" value="">
<input type="hidden" class="name_reply" value="">
<textarea id="new_comment" name="vk_text" placeholder="Текст комментария" cols="30" rows="10" class="form-control"></textarea>
<div class="emojis">
<img src="/assets/emoji/smile.svg" alt=":)" onclick="smile('😊');">
<img src="/assets/emoji/wink.svg" alt=";)" onclick="smile('😉');">
<img src="/assets/emoji/biggrin.svg" alt=":D" onclick="smile('😁');">
<img src="/assets/emoji/sad.svg" alt=":(" onclick="smile('😒');">
<img src="/assets/emoji/cry.svg" alt=":cry:" onclick="smile('😥');">
<img src="/assets/emoji/neutral.svg" alt=":|" onclick="smile('😐');">
<img src="/assets/emoji/surprised.svg" alt=":o" onclick="smile('😮');">
<img src="/assets/emoji/razz.svg" alt=":P" onclick="smile('😛');">
<img src="/assets/emoji/cool.svg" alt="8-)" onclick="smile('😎');">
<img src="/assets/emoji/redface.svg" alt=":oops:" onclick="smile('😳');">
<img src="/assets/emoji/rolleyes.svg" alt=":roll:" onclick="smile('😒');">
</div>
var vk_send = "&reply=" + $('.send-id-reply').val() + "&name_reply=" + $('.name_reply').val() + "&status=" + $('.send-status-reply').val() + "&text_comment=" + $('.form_vk_save textarea').val() + "&name=" + $('.send_vk_name').val() + "&id_page=" + id_page + "&id_post=" + $('.vk_post_id').val() + "&parent=" + {$_modx->resource.parent}
var canclick=1;
if(canclick ==1){
$.ajax
({
type: "POST",
url: "ajax/save_comment.php",
dataType: "json",
data: vk_send,
beforeSend: function(){
canclick =0;
},
success: function(result_vk)
{
if (result_vk.success) {
$('.loding').hide();
var current_count_comm = [[+sum_comments]];
if(current_count_comm != 0){
$('.vk_comment:last').after(result_vk.response);
}
else{
$('.box_vk_comments').html(result_vk.response);
}
$('.new-comment').animate( { "background-color": "white" } , 2000);
$('#UploadifyResponse').empty();
$('textarea.form-control').val('');
}
else{ alert('Произошла ошибка сервера');}
canclick =1;
$('.save_comment').prop('disabled',false);
}
});
}
}
Указать, что мне нужно изменить, чтобы CMS заработала? Например, по указанной ссылке /new/ .