小编thi*_*ebo的帖子

如何在 vue 路由器导航卫士中使用 pinia 商店?

我正在使用 Vuejs 3、vuerouter 4 和 pinia,并尝试在某些路线中放置导航防护,按照文档中的示例(如果用户未经身份验证并且不在登录页面上,则将用户发送到登录页面获得身份验证)。关于在组件之外使用 pinia 的pinia 文档中也对此进行了解释。但我无法理解它。

我使用的商店目前很简单(返回 false 或 true isAuthenticated):

//authStore.js
import { defineStore } from "pinia";

export const useAuthStore = defineStore( 'AuthStore', {

  state: () => {
    return {
      isAuthenticated: false
    }
  }

})
Run Code Online (Sandbox Code Playgroud)

isAuthenticated我想在一个beforeEnter中使用这个routes/index.js

在 main.js 中:


import { useAuthStore } from '@/stores/authStore'
import { createApp } from 'vue'
import App from './App.vue'
import router from '@/router'
import { createPinia } from 'pinia' …
Run Code Online (Sandbox Code Playgroud)

vue-router vuejs3 pinia

9
推荐指数
1
解决办法
5628
查看次数

gsub删除第一个逗号之前的所有内容

我有这个字符串:

auteur = "comte de Flandre et Hainaut, Baudouin, Jacques, Thierry"
Run Code Online (Sandbox Code Playgroud)

我想在第一个逗号之前删除所有内容,即在这种情况下保留"Baudouin,Jacques,Thierry"

试过这个:

nom = auteur.gsub(/.*,/, '')
Run Code Online (Sandbox Code Playgroud)

但是在最后一个逗号之前删除了所有内容并且只保留了"Thierry".

ruby regex gsub

5
推荐指数
2
解决办法
3018
查看次数

summernote js上传图片

我正在使用summernote版本0.8.1(当前).

它正在发挥作用.但有一件事我很挣扎.插入图像,而不是放入base64 dataURL,我想将图像上传到服务器并在图像数据库中插入图像URL.这是我的代码:

<script>
$(document).ready(function() {
$('#summernote').summernote({
    lang: 'fr-FR',
    height: 300,
    toolbar : [
        ['style',['bold','italic','underline','clear']],
        ['font',['fontsize']],
        ['color',['color']],
        ['para',['ul','ol','paragraph']],
        ['link',['link']],
        ['picture',['picture']]
    ],
    onImageUpload: function(files, editor, welEditable) {
        for (var i = files.lenght - 1; i >= 0; i--) {
        sendFile(files[i], this);
        }
    }
});

function sendFile(file, el) {
    var form_data = new FormData();
    form_data.append('file',file);
    $.ajax ({
        data: form_data,
        type: "POST",
        url: "../up.php",
        cache: false,
        contentType: false,
        processData: false,
        success: function(url) {
            $(el).summernote('editor.insertImage',url);
            }
        })
    }

});
    </script>
Run Code Online (Sandbox Code Playgroud)

我已经测试了脚本up.php,它的作用是更改文件名并以"../photos/mypicture.jpg"的形式返回图像的url.

上面代码的问题是,甚至似乎都没有调用..up.php.我在Firefox开发工具中运行它并没有出现任何错误或警告.

javascript php summernote

4
推荐指数
1
解决办法
8222
查看次数

rails text_field 创建数组数组

我有这个代码:

<%= form_for :biblio, url: {action: "create"} do |f| %>
 [cut for brievity]
<%= f.text_field :auteur, size: 100, class:"champs_auteur" %>
Run Code Online (Sandbox Code Playgroud)

这创建了这个 html :

<input size="100" class="champs_auteur" name="biblio[auteur]" id="biblio_auteur" type="text">
Run Code Online (Sandbox Code Playgroud)

我正在尝试将名称设为: name="biblio[auteur][1]"

我不明白怎么办

arrays ruby-on-rails

3
推荐指数
1
解决办法
1068
查看次数

response_to format.html参数太少

在添加书目表单中,我创建了一个添加作者表单,该表单使用json添加了作者。

这很好。

但是,当作者添加到数据库时,我想显示一条成功消息。

这是我的代码:

def create
    @auteur = Auteur.new(params_auteur)
    respond_to do |q|
        if @auteur.save
            format.html{ redirect_to @auteur, notice: 'Auteur added successfully.'}
            format.js{}
            format.json{
                render json: @auteur, status: :created, location: @auteur
            }
        else
            format.html{ render action: "new"}
            format.json{ render json: @auteur.errors, status: :unprocessable_entity}
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

然后,我添加了一个views/auteurs/create.js.erb包含以下代码的文件:

$("<%= escape_javascript(render @auteur) %>").appendTo(".bloque_ajoute_auteur"); 
Run Code Online (Sandbox Code Playgroud)

我的错误消息是在(成功)将新作者插入数据库后生成的:

Completed 500 Internal Server Error in 10ms (ActiveRecord: 1.6ms)
ArgumentError (too few arguments):
app/controllers/administration/auteurs_controller.rb:23:in `format'
app/controllers/administration/auteurs_controller.rb:23:in `block in create'
app/controllers/administration/auteurs_controller.rb:21:in `create'
Run Code Online (Sandbox Code Playgroud)

第21行是response_to块的开始;第23行是format.html{ redirect_to @auteur, notice: 'Auteur …

ruby-on-rails

2
推荐指数
2
解决办法
1286
查看次数

JSON自动完成错误的URL在Rails

我在应用程序的多个位置上使用了jQuery自动完成功能,包括带有url的表单:

http://www.fonsiuris.net/fr/administration/actes/nouveau/122
Run Code Online (Sandbox Code Playgroud)

应用程序/视图/管理/行为表单具有以下字段:

http://www.fonsiuris.net/fr/administration/actes/nouveau/122
Run Code Online (Sandbox Code Playgroud)

在routes.rb中:

<%= lieux.text_area :place, :value =>  params[:acte] ? @place["place"] : "", class:"field_places", data: {autocomplete_source: lieux_enum_path} %>
Run Code Online (Sandbox Code Playgroud)

这是我的routes.rb的第一个URL

但是,当我在文本区域中键入字母时,例如具有自动完成功能的“ Dou”,它将指向此url:

http://www.fonsiuris.net/fr/biblios/trouver?utf8=?&ch_bib[aut_titre_cherche]=Douai&commit.x=6&commit.y=2&term=Dou
Run Code Online (Sandbox Code Playgroud)

当我输入多个术语时,该术语会像这样添加到网址中:

/fr/biblios/trouver?utf8=%E2%9C%93&ch_bib%5Baut_titre_cherche%5D=Douai&commit.x=5&commit.y=11&term=Paris
Run Code Online (Sandbox Code Playgroud)

(都将杜埃岛和巴黎都添加为搜索词)

它应该指向这个URL:

http://www.fonsiuris.net/lieux/enum?term=Dou
Run Code Online (Sandbox Code Playgroud)

给出正确的结果。我在应用程序的多个位置使用了相同的代码,并且使用了相同的javascript,并且在其他所有地方都可以正常使用!

的输出rails routes | grep enum是:

                          lieux_enum GET    /lieux/enum(.:format)                                          lieux#enum
                       motclefs_enum GET    /motclefs/enum(.:format)                                       motclefs#enum
                 actes_enum_acte_mot GET    /actes/enum_acte_mot(.:format)                                 actes#enum_acte_mot
                    biblios_enum_rec GET    /biblios/enum_rec(.:format)                                    biblios#enum_rec
        administration_archives_enum GET    /administration/archives/enum(.:format)                        administration/archives#enum_archive
         administration_biblios_enum GET    (/:locale)/administration/biblios/enum(.:format)               administration/biblios#enum_titres {:locale=>/fr|en|nl|it/}
         administration_auteurs_enum GET    (/:locale)/administration/auteurs/enum(.:format)               administration/auteurs#enum_noms {:locale=>/fr|en|nl|it/}
Run Code Online (Sandbox Code Playgroud)

到目前为止我尝试过的是:

  • 重新加油路线
  • 重写form.html.erb,使其包含与我的应用程序可以正常工作的其他地方完全相同的代码
  • 在各处使用相同的JavaScript
  • 重新安装jquery和jquery-ui:现在使用cdn代替gem-没有任何区别。

我不知道从哪里开始寻找解决方案。

url json ruby-on-rails jquery-ui-autocomplete

2
推荐指数
1
解决办法
103
查看次数

为什么这个 vuelidate 函数不能在设置内工作,而只能在方法之外工作?

我正在将 vuelidate 与组合 API 一起使用,但我不明白为什么v$.validate()当我放入 inside methods、 aftersetup而不是 inside 时,它​​可以正常工作setup

所以这有效:

setup() {
  // inspired from 
  // https://vuelidate-next.netlify.app/#alternative-syntax-composition-api
  const state = reactive ({
    // the values of the form that need to pass validation, like:
    name: ''
  })

  const rules = computed (() => {
    return {
      // the validation rules
    }

  const v$ = useVuelidate(rules, state)

  return {
    state,
    v$
  }
},
methods: {
  async submitForm () {
    const result = await …
Run Code Online (Sandbox Code Playgroud)

vuelidate vuejs3 vue-composition-api

1
推荐指数
1
解决办法
2380
查看次数

$ _POST更好的写作质量

我有这个代码:

if(isset($_POST['prenom2'])){
    $t['prenom2'] = $_POST['prenom2'];
}else{
    $t['prenom2'] = '';
}

if(isset($_POST['nom2'])){
    $t['nom2'] = $_POST['nom2'];
}else{
    $t['nom2'] = '';
}

if(isset($_POST['prenom3'])){
    $t['prenom3'] = $_POST['prenom3'];
}else{
    $t['prenom3'] = '';
}
Run Code Online (Sandbox Code Playgroud)

等(我需要测试5或6个字段).

必须有更好的方法来做到这一点,比如如果没有设置给定的POST索引,那么索引就是......

谢谢

php post

0
推荐指数
1
解决办法
61
查看次数