我正在创建一个非常简单的网站。我想根据navLayout页面模板中设置的数据更改导航栏元素。我想将数据传递给布局,然后使用props将其发送到NavBar. 我的问题是如何emit从页面到布局的数据。
布局/default.vue
<template>
<div>
<NavBar />
<div class="site-container">
<nuxt />
</div>
<Footer />
</div>
</template>
<script>
import NavBar from '~/components/NavBar.vue'
export default {
components: {
NavBar,
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
页面/index.vue
...
<script>
export default {
data: () => {
return {
navLayout: 'simple'
}
},
computed: () => {
return {
this.$emit('navLayout', value)
}
}
...
</script>
Run Code Online (Sandbox Code Playgroud) 我使用 Nuxt(vue) 作为前端,使用 Firestore 和 Authentication 作为后端。我得到了一定数量的身份验证,但我的问题是刷新浏览器会重置状态,因此我的中间件返回错误结果。
这里有一些代码片段:
中间件:
export default function ({store, redirect, route}) {
const userIsLoggedIn = !!store.state.currentUser;
if(!userIsLoggedIn) {
return redirect ('/')
}
}
Run Code Online (Sandbox Code Playgroud)
插入:
import { auth } from '@/services/firebaseInit.js'
export default (context) => {
const { store } = context
return new Promise((resolve, reject) => {
auth.onAuthStateChanged(user => {
store.commit('setCurrentUser', user)
resolve()
})
})
}
Run Code Online (Sandbox Code Playgroud)
现在这适用于运行应用程序,但是当有人刷新您需要身份验证的页面时,它不起作用并重定向到 /,现在我不知道如何解决该问题,希望得到帮助,如果您需要更多代码,我会提供它。
编辑 1:
async nuxtServerInit ({ commit }, { req }) {
let user = await firebase.auth().currentUser
commit('setCurrentUser', user) …Run Code Online (Sandbox Code Playgroud) 我有一个抽屉式导航不将内容推到一边从移动它mini.variant来opened。
<v-navigation-drawer
class="chatbar--gradient"
app
right
:mini-variant.sync="closed"
mini-variant-width="70"
width="250px"
></v-navigation-drawer>
Run Code Online (Sandbox Code Playgroud)
App.vue:
<v-app dark>
<app-navbar></app-navbar>
<navigation-bar></navigation-bar>
<v-slide-y-transition>
<chat-sidebar></chat-sidebar>**
<!-- THIS IS THE MODAL FROM ABOVE -->
**
</v-slide-y-transition>
<v-content>
<keep-alive>
<transition name="fade">
<router-view :key="$route.fullPath" />
</transition>
</keep-alive>
<display-name-entry-modal></display-name-entry-modal>
</v-content>
<v-footer v-if="$vuetify.breakpoint.smAndUp" tile padless height="3px" app class="pageFooter"></v-footer>
<bottom-nav v-if="$vuetify.breakpoint.smAndDown"></bottom-nav>
</v-app>
Run Code Online (Sandbox Code Playgroud) infiniteHandler($state) {
var next = db
.collection("posts")
.orderBy("timestamp", "desc")
.startAfter(this.lastVisible)
.limit(3)
next.get().then(documentSnapshots => {
//Get the last visible document
// this.lastVisible =
// documentSnapshots.docs[documentSnapshots.docs.length - 1]
if (documentSnapshots.docs.length == 0) $state.complete()
else {
this.$store.commit(
"modules/posts/updateLastVisible",
documentSnapshots.docs[documentSnapshots.docs.length - 1].data()
.timestamp
)
}
documentSnapshots.forEach(doc => {
var post = doc.data()
post.docID = doc.id
this.$store.commit("modules/posts/pushPost", post)
})
$state.loaded()
})
}
Run Code Online (Sandbox Code Playgroud)
这是我的无限加载处理程序,它在到达列表末尾时获取新的数据库条目.到目前为止工作正常.
这是我加载页面时的第一次获取
async fetch({ store }){
if (store.state.modules.posts.posts.length < 5) {
let posts = []
await db
.collection("posts")
.orderBy("timestamp", "desc")
.limit(3)
.get()
.then(querySnapshot …Run Code Online (Sandbox Code Playgroud) 因此,我有一个大约160 000条目的数据集,它们是计算机生成的,多年来发生了错误。
可以说表有以下几列:
- EntryID (auto int)
- FruitNumber
- JuiceNumber
- CandyNumber
- Date
Run Code Online (Sandbox Code Playgroud)
现在重要的是,FruitNumber, JuiceNumber,CandyNumber当它们之间的时间少于12个月时,的每个组合都是唯一的。
这意味着这些精确组合只能在12个月内存在一次。现在,我需要将此数据集迁移到新的数据模型中,为此,我需要删除重复的记录(但保留其中的1条记录),我尝试使用Queries进行了很多尝试,但找不到解决方案。
以下片段
const start = new Date(this.date + 'T' + this.time);
console.log(start); // Thu Sep 12 2019 04:00:00 GMT+0200
const tournament:Tournament = {
start: firebase.firestore.Timestamp.fromDate(start)
}
Run Code Online (Sandbox Code Playgroud)
将此锦标赛对象传递给可调用云函数(其唯一目的是将tournament传递的数据保存为文档)会将start字段保存为具有属性的地图seconds,而miliseconds不是 Firestore 中的时间戳。
我也尝试这样做start: start,但这也没有带来在 Firestore 中保存时间戳的预期结果。
仅供参考,这是功能代码精简后的样子:
firestore.collection('tournaments').doc(slugUrl).set(tournamentData)
(tournamentData是前端传入的Object)
因此,在当前的Google Cloud CLI Beta功能中,可以选择导入和导出Firestore数据。 https://firebase.google.com/docs/firestore/manage-data/export-import
现在,我进行了“导出到存储桶”操作,一切正常,然后再次导入,效果也很好。现在我有两个不同的项目,想将备份导入到另一个项目中,这可能吗?如果我也只需要一个项目的计费帐户,那将很好。
Docs中的这一行表示可能
在Cloud Storage中导出文件后,您可以将这些文件中的文档导入回到您的项目或另一个项目中。
但是文档没有涵盖其具体执行情况吗?
目前正在清理一些代码并用打字稿重写很多内容。我发现让我好奇的是以下代码:
const userRef = firestore.collection('users').doc(userId);
const userDoc = await userRef.get();
if (userDoc.exists) {
const userData = userDoc.data();
const currentUserBalance = userData.balance ? userData.balance : 0;
}
Run Code Online (Sandbox Code Playgroud)
现在 Typescript 会抱怨这userData是可能的,但是当我检查我的块中上面存在的文档时,undefined文档不能是未定义的。只是好奇为什么会发生这种情况以及我这里是否有逻辑问题。.data()if
如果我做:
var number = 35000.25; alert(number.toLocaleString("de-DE"));我会用35.000,25德语。
但我怎样才能将它转换回35000.25或者我想要类似的东西:
var str='35.000,25'; alert(str.toLocaleNumber("en-US"));所以,它可以给35,000.25.
JS可以吗?
我有一个支持CSS/bootstrap 3.2的环境,但是没有javascript.我正在尝试使用纯CSS选择器+ HTML实现列表过滤解决方案.
假设,HTML列表元素中有2个项目.我想只显示与输入元素中输入的文本匹配的那些.
<form>
<ul>
<li class ="c1">c1</li>
<li class="c2">c2</li>
</ul>
<input type="text">
</form>
Run Code Online (Sandbox Code Playgroud)
如果我输入c1文本框,那应该只显示第一个项目.这甚至可能使用纯css,没有JS?
我想将服务器上已有的文件添加到 Dropzone,我尝试通过 vue-dropzone Docs 以及普通的 dropzone 文档搜索我的问题,我也经历了 5+ github 问题并尝试了那里的帮助方法,但我似乎没有找到解决方案。
所以我调用这个方法:
this.product.images.forEach(image => {
const file = { name: 'Icon', type: 'image/jpeg', dataURL: image };
this.$refs.dropzone.manuallyAddFile(file, image);
});
Run Code Online (Sandbox Code Playgroud)
文件被正确添加,但我根本没有生成缩略图。这基本上就是整个问题。
javascript ×9
firebase ×5
vue.js ×5
nuxt.js ×2
angular ×1
css ×1
dropzone.js ×1
html ×1
node.js ×1
nuxt ×1
sql ×1
sql-server ×1
t-sql ×1
typescript ×1
vuetify.js ×1