小编Gre*_*ggy的帖子

如何将Scrollbars添加到Grid

如何将滚动条添加到网格?

    <Grid>
        <Menu Height="23" Name="menu1" VerticalAlignment="Top">
            <MenuItem Header="File">
                <MenuItem Command="ApplicationCommands.New" Header="New" />
                <MenuItem Command="ApplicationCommands.Save" Header="Save" />
                <MenuItem Command="ApplicationCommands.Open" Header="Open" />
                <MenuItem Command="ApplicationCommands.Close" Header="Exit" />
            </MenuItem>
            <MenuItem Header="Stuff">
                <MenuItem Header="Properties" Command="Properties"/>
                <MenuItem Header="Tileset" Command="Replace"/>
            </MenuItem>
        </Menu>
        <Grid Margin="0,24,0,0">
            <Canvas HorizontalAlignment="Stretch" Name="canvas1" VerticalAlignment="Stretch" MouseMove="MoveMouse" MouseDown="PressDownMouse" MouseUp="canvas2_MouseLeftButtonUp" MouseWheel="canvas1_MouseWheel"/>
            <Canvas HorizontalAlignment="Stretch" Name="canvas2" VerticalAlignment="Stretch" MouseMove="MoveMouse" MouseDown="PressDownMouse" MouseUp="canvas2_MouseLeftButtonUp" MouseWheel="canvas1_MouseWheel"/>
            <ListView HorizontalAlignment="Left" Name="listView1" Width="203" VerticalAlignment="Stretch" SelectionChanged="listView1_SelectionChanged">
            </ListView>
        </Grid>
    </Grid>
Run Code Online (Sandbox Code Playgroud)

两幅画布可能太高或太宽.

这是Tile Map Editor,我在画布上画了一切.在ListView我有瓷砖插入.

c# wpf xaml scrollbar

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

将服务注入 Nest.JS 中的守卫

我有 KeysModule,可用于添加或删除 API 密钥。我需要这些密钥来保护某些路由免遭未经授权的访问。为了保护这些路由,我创建了 ApiGuard:

import { CanActivate, ExecutionContext, Injectable } from '@nestjs/common';

@Injectable()
export class ApiGuard implements CanActivate {

async canActivate(
    context: ExecutionContext,
  ): Promise<boolean> {
    const request = context.switchToHttp().getRequest();
    return request.headers.api_key;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后我在路由中使用它:

 @Get('/protected')
 @UseGuards(ApiGuard)
 async protected(@Headers() headers: Api) {
   const key = await this.ks.findKey({ key: headers.api_key });
   if (!key || !key.active) return 'Invalid Key';
   return 'Your API key works';
 }
Run Code Online (Sandbox Code Playgroud)

其中 ks 是 KeyService 用于检查密钥是否正确。此解决方案有效,但很愚蠢。我必须在我想使用这个守卫的任何地方复制和粘贴一些代码行(我的意思是路线中的行)。

我试图将所有逻辑移至 ApiGuard,但出现错误,即 KeyService 无法注入 ApiGuard 类。解释一下,我在 KeysModule 的提供者中有 KeyService,但 ApiGuard 是全局使用的。 …

node.js express nestjs

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

在 puppeteer 站点内获取数据

我在从外部服务获取数据时遇到奇怪的问题。我有一个简单的脚本来从 API 打印一些数据:

fetch("http://sip.ztm.kielce.pl/Home/CNR_GetVehicles?r=0W&d=&nb=", {"credentials":"include","headers":{"accept":"application/xml, text/xml, */*; q=0.01","accept-language":"pl;q=1.3592","x-requested-with":"XMLHttpRequest"},"referrer":"http://sip.ztm.kielce.pl/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"})
.then(response => {
        return response.text();
    }).then(function(data) {
    console.log(data); // this will be a string
});
Run Code Online (Sandbox Code Playgroud)

该脚本有效,但仅当我位于http://sip.ztm.kielce.pl时。所以我计划使用 puppeteer 从这个站点上下文中评估这个脚本。

所以我写了 Node.JS 代码:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    page.on('console', (log) => console[log._type](log._text));

    await page.goto('http://sip.ztm.kielce.pl');
    await page.waitFor(5000);

    await page.evaluate(() => {
        console.log('test');
        fetch("http://sip.ztm.kielce.pl/Home/CNR_GetVehicles?r=0W&d=&nb=", {"credentials":"include","headers":{"accept":"application/xml, text/xml, */*; q=0.01","accept-language":"pl;q=1.3592","x-requested-with":"XMLHttpRequest"},"referrer":"http://sip.ztm.kielce.pl/","referrerPolicy":"no-referrer-when-downgrade","body":null,"method":"GET","mode":"cors"})
        .then(response => {
                return response.text();
            }).then(function(data) {
            console.log(data); // this will be a …
Run Code Online (Sandbox Code Playgroud)

web-crawler node.js fetch-api puppeteer

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

按日期过滤TurboTable

我有简单的TurboTable,我想显示一些数据,还有日期.

<p-table [value]="boxes" #dt>
    <ng-template pTemplate="header" let-columns>
        <tr>
            <th pSortableColumn="Number">
                Number
                <p-sortIcon field="Number"></p-sortIcon>
            </th>
            <th pSortableColumn="DateInserted">
                Interted at
                <p-sortIcon field="DateInserted"></p-sortIcon>
            </th>
        </tr>
        <tr>
            <th>
            <!-- Here is input to filter number -->
            </th>
            <th>
            <!-- Here I want to use Calendar component to select date range -->
            <p-calendar 
                [(ngModel)]="date"
                selectionMode="range"
                [readonlyInput]="true"
                dateFormat="dd.mm.yy"
                (onSelect)="onDateSelect($event)">
            </th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-box>
        <tr [pSelectableRow]="box">
            <td>{{box.Number}}</td>
            <td>{{box.DateInserted | date}}</td>
        </tr>
    </ng-template>
</p-table>
Run Code Online (Sandbox Code Playgroud)

目前Turbo Table仅提供一些在过滤器中使用的匹配模式("startsWith","contains","endsWith","equals"和"in").是否有任何选项可以按日期(日期范围)进行过滤?我想使用Calendar组件选择日期范围,然后按这些日期过滤数据.我正在使用Date对象(我在表中使用DatePipe).现在,这些匹配模式都没有提供比较Date对象的选项.

解决方法是将日期存储为字符串,然后过滤正在运行.但是不是完美的解决方案,因为它会产生将日期转换为字符串的问题,日期格式也必须在任何地方都相同.那么也许有更好的选择来实现TurboTable中日期范围的过滤?

primeng angular primeng-turbotable

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