小编Ham*_*bot的帖子

Vue.js更改{{}}标记

我想改{{ something }}<% something %>在Vue.js,我怎么能做到这一点,是它甚至可能吗?

我在AngularJS中寻找的等价物:

var app = angular.module('app', [], function($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
});
Run Code Online (Sandbox Code Playgroud)

非常感谢你的帮助!

vue.js

39
推荐指数
4
解决办法
2万
查看次数

Java传播运算符

我不确定我在这里使用的词汇,如果我错了,请纠正我.

在Javascript中,我有以下代码:

let args = [1,2,3];

function doSomething (a, b, c) {
    return a + b + c;
}

doSomething(...args);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,在调用时doSomething,我能够使用...spread运算符来"转换"我的参数1, 2, 3.

现在,我正在尝试用Java做同样的事情.

假设我有一Foo节课:

public class Foo {
    public int doSomething (int a, int b, int c) {
        return a + b + c;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想打电话给doSomething:

int[] args = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

我想用一些东西doSomething (...args)而不是打电话doSomething(args[0], args[1], args[2]).

我看到这在函数声明中是可能的,但我不想改变这样一个函数的实现.

java

24
推荐指数
3
解决办法
2万
查看次数

VueJS这在lodash节流方法中

我试图在我的VueJS应用程序中限制一个方法.我首先尝试了以下内容:

export default {
    data () {
        return {
            foo: 'bar'
        }
    },
    methods: {
        doSomething () {
            console.log('olas')
        }
    },
    created () {
        _.throttle(this.doSomething,200)
    }
}
Run Code Online (Sandbox Code Playgroud)

但该doSomething方法没有被解雇:https://jsfiddle.net/z4peade0/

然后,我尝试了这个:

export default {
    data () {
        return {
            foo: 'bar'
        }
    },
    methods: {
        doSomething: _.throttle( () => {
            console.log('olas')
        },200)
    },
    created () {
        this.doSomething()
    }
}
Run Code Online (Sandbox Code Playgroud)

函数被触发:https://jsfiddle.net/z4peade0/1/

问题是,我无法访问foo限制方法内的属性:

export default {
    data () {
        return {
            foo: 'bar'
        } …
Run Code Online (Sandbox Code Playgroud)

lodash vue.js

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

NestJS:使用 JWT 向 AuthGuard 添加验证选项

我正在尝试AuthGuard按照文档使用装饰器和通行证 JWT 策略。

文档中的所有内容都很好用。但是我现在想保护具有包含在 JWT 中的范围的路由。所以这是我的应用程序生成的基本 jwt 负载:

{
  "user": {
    "id": "20189c4f-1183-4216-8b48-333ddb825de8",
    "username": "user.test@gmail.com"
  },
  "scope": [
    "manage_server"
  ],
  "iat": 1534766258,
  "exp": 1534771258,
  "iss": "15f2463d-8810-44f9-a908-801872ded159",
  "sub": "20189c4f-1183-4216-8b48-333ddb825de8",
  "jti": "078047bc-fc1f-4c35-8abe-72834f7bcc44"
}
Run Code Online (Sandbox Code Playgroud)

这是AuthGuard装饰器保护的基本受保护路由:

@Get('protected')
@UseGuards(AuthGuard('jwt'))
async protected(): Promise<string> {
    return 'Hello Protected World';
}
Run Code Online (Sandbox Code Playgroud)

我想添加选项并将该路由的访问权限限制为具有manager_serverJWT 范围的人员。所以在阅读了一些AuthGuard代码之后,我认为我可以写出类似的东西:

@Get('protected')
@UseGuards(AuthGuard('jwt', {
    scope: 'manage_server'
}))
async protected(): Promise<string> {
    return 'Hello Protected World';
}
Run Code Online (Sandbox Code Playgroud)

但是,我在文档中看不到可以使用此选项的地方。

我认为向 the 的validate函数添加一个选项参数JWTStrategy可以解决问题,但事实并非如此。这是我的validate函数(包含在 …

javascript node.js nestjs

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

Doctrine实体的抽象类

我正在尝试为涉及一般字段created_atupdated_at值的实体创建一个抽象类:

<?php
namespace AppBundle;

use Doctrine\ORM;

abstract class Model {

    /**
     * @var \DateTime $created_at
     *
     * @ORM\Column(type="datetime")
     */
    private $created_at;

    /**
     * @var \DateTime $updated_at
     *
     * @ORM\Column(type="datetime")
     */
    private $updated_at;

}
Run Code Online (Sandbox Code Playgroud)

然后,我扩展我的课程:

<?php
namespace AppBundle\Entity;

use AppBundle\Model;

/**
 * Entity
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="RB\ProductsBundle\Entity\ProductRepository")
 */
class Entity extends Model
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", …
Run Code Online (Sandbox Code Playgroud)

symfony doctrine-orm

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

Vuetify v-flex元素内的垂直居中

我试图在我的组件上使用垂直空间,或者至少使用框架的flexbox功能.

这是我想要用图像实现的,第一个图像代表我对当前代码的所有内容,第二个是我想要实现的内容:

在此输入图像描述

这是我写的基本标记,如果你想玩它,我会在jsFiddle上复制它:https://jsfiddle.net/tgpfhn8m/357/

<v-layout row wrap>
  <v-flex xs8>
    <v-card class="red" height="400px">
      Fixed Height Card
    </v-card>
  </v-flex>
  <v-flex xs4 class="purple">
    <v-card class="green">
        First Card
    </v-card>
    <v-card class="green">
        Second Card
    </v-card>
  </v-flex>
</v-layout>
Run Code Online (Sandbox Code Playgroud)

我尝试了什么?

我试过各种方法.第一个是v-layout:column在第二列中包含一个,然后应用justify-space-between它.没有成功(https://jsfiddle.net/tgpfhn8m/358/):

<v-flex xs4 class="purple">
  <v-layout column justify-space-between>
    <v-card class="green">
      First Card
    </v-card>
    <v-card class="green">
        Second Card
    </v-card>
  </v-layout>
</v-flex>
Run Code Online (Sandbox Code Playgroud)

我尝试了许多元素和属性的其他组合,但也没有成功.

我究竟做错了什么?甚至可以用原生的Vuetify元素实现我想要的东西吗?

vuetify.js

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

API/SPA的用户注册

我正在创建一个API和一个单独的前端应用程序,它将使用所述API.在我的特殊情况下,我使用Laravel Passport作为我的API,并使用一些VueJS作为我的前端应用程序.

为了让用户创建一个帐户,用户必须使用API​​上的POSTroute(/oauth/token),这需要client_secret传递(https://laravel.com/docs/5.3/passport#password-grant-tokens).

我看到的唯一选择是:

  1. 具有client_secret发送,从我的前端应用程序的标题.但是,将此令牌放在公开状态似乎并不聪明.
  2. 根本不需要client_secret.这似乎没有比选项1好多少.
  3. 在我的前端应用程序上有一个动态页面,可以安全地存储client_secret然后将其发送到API.虽然这显然是最安全的,但似乎部分地破坏了完全静态前端(SPA)的目的.

这种方法的最佳实践是什么?我已经搜索了如何通过API和SPA处理这个问题,但我没有找到任何指向正确方向的东西.

csrf jwt laravel vue.js laravel-passport

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

Jquery和Google跟踪代码管理器

我在网站上实施Google跟踪代码管理器时遇到了一些问题.我有一个Google代码,当我在我的网站上试用它时,会产生很多 javascript冲突.

因此,我尝试将代码放在一个单独的文件中,以便逐步执行并观察不同脚本的行为.

所以这里是我非常简单的HTML页面:

<!DOCTYPE html>
<html>
<head>
    <title>Titre</title>
</head>
<body>
    <!-- Google Tag Manager -->
    <noscript>
    <iframe src="http://www.googletagmanager.com/ns.html?id=GTM-XXXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe>
    </noscript>
    <script type="text/javascript">
        dataLayer = [{'uid':'12'}];
        (function(w,d,s,l,i){
            w[l]=w[l]||[];
            w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
            var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
            j.async=true;
            j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;
            f.parentNode.insertBefore(j,f);
        })(window,document,'script','dataLayer','GTM-XXXXXX');
    </script>
    <!-- End Google Tag Manager -->
    hello
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这个页面,在JS控制台中返回一个错误:

Uncaught ReferenceError: jQuery is not defined
Run Code Online (Sandbox Code Playgroud)

嗯,这是出乎意料的,jQuery在这里要做什么?我甚至没有在我的身体标签上声明它,Google是否需要jQuery?

所以这很奇怪,第二件事,当我在浏览器上加载后查看生成的HTML页面时:

<body>
... Long stuff here
<script type="text/javascript" id="" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
... some other stuff here
</body>
Run Code Online (Sandbox Code Playgroud)

这是什么魔法?为什么Google会在页面底部添加一个jquery,为什么我的控制台会向我显示jQuery错误?

非常感谢任何类型的信息,我完全失去了...祝你有愉快的一天!

jquery google-tag-manager

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

Symfony上的批量请求

我试图在他们的图形api上重现facebook批量请求函数的行为.

所以我认为最简单的解决方案是在控制器上向我的应用程序发出几个请求,例如:

public function batchAction (Request $request)
{
    $requests = $request->all();
    $responses = [];

    foreach ($requests as $req) {
        $response = $this->get('some_http_client')
            ->request($req['method'],$req['relative_url'],$req['options']);

        $responses[] = [
            'method' => $req['method'],
            'url' => $req['url'],
            'code' => $response->getCode(),
            'headers' => $response->getHeaders(),
            'body' => $response->getContent()
        ]
    }

    return new JsonResponse($responses)
}
Run Code Online (Sandbox Code Playgroud)

所以有了这个解决方案,我认为我的功能测试会是绿色的.

但是,我填写像初始化服务容器X次可能会使应用程序更慢.因为对于每个请求,每个包都是构建的,所以每次都重建服务容器等...

您是否看到了我的问题的其他解决方案?

换句话说,我是否需要向服务器发出完整的新HTTP请求以获取应用程序中其他控制器的响应?

提前感谢您的建议!

symfony

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

Vuetify,关闭Snackbar而不关闭对话框

我正在尝试将对话框和小吃店与VueJS结合使用。问题如下:

预期的行为:

我应该能够在不关闭对话框的情况下关闭快餐栏

现在会发生什么:

单击小吃栏时,对话框关闭


这是要复制的JSFiddle:https ://jsfiddle.net/q6m2j4ae/5/

这是该问题的标记:

<v-container>
    <v-dialog v-model="displayDialog" max-width="300px">
        <v-card flat>
            This is the dialog content
        </v-card>
    </v-dialog>
    <v-snackbar
            v-model="displaySnackbar"
            :top="true"
            :right="true"
            :vertical="true"
            color="success"
    >
        Some Content
        <v-btn flat @click.stop="displaySnackbar = false">Close</v-btn>
    </v-snackbar>
</v-container>
Run Code Online (Sandbox Code Playgroud)

如您所见,v-snackbar处于对话框的同一级别。我不允许将快餐栏嵌套在对话框中。但是,即使我尝试,小吃栏也不会显示。

我试过的

  • 我认为stopclick事件上的修饰符@click.stop="displaySnackbar = false"足以不关闭对话框。
  • 我检查了z-index应用于元素。快餐栏有一个z-index: 1000,对话框有一个z-index:200。因此,我无法调整该值。

是虫子吗?我该如何解决我手上的问题?

vuetify.js

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