如何将滚动条添加到网格?
<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我有瓷砖插入.
我有 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 是全局使用的。 …
我在从外部服务获取数据时遇到奇怪的问题。我有一个简单的脚本来从 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) 我有简单的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中日期范围的过滤?