小编Nik*_*ita的帖子

如何在角度路线声明中使用带有字符串插值的常量?

路线段已移至常量。下面的代码是简化的,但在项目中大约有 5 个惰性模块,每个模块有大约 20 个路由和段,通常在服务和组件中router.navigate用作对象中的字符串键(某些组件的图像:)assets/images/${urlSegment}.jpg。为此,段已移至常量。

路由.module.ts

export const PATIENT_URL_SEGMENTS = {
  TOOLS: 'tools',
  INDEX: 'index',
}; 

const routes = [
{ path: PATIENT_URL_SEGMENTS.TOOLS, component: ToolsComponent }
{ path: `${PATIENT_URL_SEGMENTS.TOOLS}/:${PATIENT_URL_SEGMENTS.INDEX}`, component: ToolDetailsComponent }]

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule],
  providers: []
})
export class PatientRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

RoutingModule用于延迟加载模块。如果我URL_SEGMENTS从单独的文件导入,在浏览器控制台中我会看到 error Can not read split of undefined。但是,如果如上面的示例中那样在适当的位置声明了常量,则一切正常。

有一个小问题,循环依赖警告 在此处输入图片说明

每个导入的组件都会发出一个警告PATIENT_URL_SEGMENTS,因为同时这些组件已导入到路由模块中。事实上没有错误,但我想删除组件 import 时的警告PATIENT_URL_SEGMENTS

你知道如何实现这一目标吗?也许可以将常量声明移动到单独的文件?

import circular-dependency typescript angular

7
推荐指数
0
解决办法
2088
查看次数

如何使用时刻时区与 C# TimeZoneInfo 进行映射?

我需要制造在用户选择的时区中工作的错觉。服务器和客户端代码坚持 JavaScript 日期的问题。因此,为了达到要求,我手动将 utc 映射到客户端的日期:

dateToServer(date) {
    const momentDate = moment(date);
    let serverDate = null;
    if (momentDate.isValid() && date) {
        const browserUtcOffset = momentDate.utcOffset();
        serverDate = momentDate
            .utc()
            .subtract(this.clientTimeZoneOffset, 'minutes')
            .add(browserUtcOffset, 'minutes')
            .toDate();
    }
    return serverDate;
}


dateToClient(date) {
    const momentDate = moment(date);
    let uiDate = null;
    if (momentDate.isValid() && date) {
        const browserUtcOffset = momentDate.utcOffset();
        uiDate = momentDate
            .utc()
            .subtract(browserUtcOffset, 'minutes')
            .add(this.clientTimeZoneOffset, 'minutes')
            .toDate();
    }
    return uiDate;
}
Run Code Online (Sandbox Code Playgroud)

我正在添加/减去 browserUtcOffset,因为当日期在服务器和客户端之间传输时,浏览器会自动添加/减去。

它运行良好,但该解决方案缺少对 DST 的处理。我想检查该日期是否启用 DST,然后根据需要添加 DST 偏移量。

这里的 C# 代码可以做到这一点: …

javascript timezone datetime moment-timezone

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

如何在不发出 http 请求的情况下将文件中的 svg 图标显示为内联?

有一个 React 应用程序,要求在离线模式下在应用程序的某些部分显示图标。内联 svg 很适合。

import React from 'react';

// inline svg used to show icons in offline mode
export default function InlineSvgBack(): React.ReactElement {
    return <svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>
        <path d='M20 12H4M4 12L9 7M4 12L9 17' stroke='white' strokeWidth='1.2' strokeLinecap='round' strokeLinejoin='round'/>
    </svg>;
}

Run Code Online (Sandbox Code Playgroud)

在所有其他图标应用程序中使用下一个方法的问题

import iconBack from '../images/icon_back.svg'

// it handled by webpack file-loader
export default function IconBack() {
    return <img src={iconBack} alt="icon back"/>
}
Run Code Online (Sandbox Code Playgroud)

所以有一个目录imagesicon_back.svg目前我已将其内容复制到InlineSvg组件中,但是我担心如果 smbd 对其进行更改,icon_back.svg …

javascript reactjs webpack

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

Microsoft.管理.基础设施在哪里

我需要获取硬盘信息,并且我想使用 WMI。

来自msdn的示例

using Microsoft.Management.Infrastructure;
...
string Namespace = @"root\cimv2";
string className = "Win32_LogicalDisk";

CimInstance myDrive = new CimInstance(className, Namespace);
Run Code Online (Sandbox Code Playgroud)

我在用着Visual Studio 2015。我创建了一个console application用于测试 WMI 的解决方案。没有Microsoft.Management.Infrastruct,如何添加?

c# wmi

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

如何在c ++中读取异步文件?

我需要异步读取文件

string read(string path) {
            DWORD readenByte;
            int t;
            char* buffer = new char[512];
            HANDLE hEvent = CreateEvent(NULL, FALSE, FALSE, "read");
            OVERLAPPED overlap;
            overlap.hEvent = hEvent;
            HANDLE hFile = CreateFile(path.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
            if(!hFile) {
                Debug::error(GetLastError(), "fileAsync.cpp::read - ");
            }
            t = ReadFile(hFile, buffer, MAX_READ - 1, &readenByte, &overlap);
            if(!t) {
                Debug::error(GetLastError(), "fileAsync.cpp::read - ");
            }
            t = WaitForSingleObject(hEvent, 5000);
            if(t == WAIT_TIMEOUT) {
                Debug::error("fail to read - timeout, fileAsync.cpp::read");
            }
            buffer[readenByte] = '\0';
            string str = …
Run Code Online (Sandbox Code Playgroud)

c++ winapi asynchronous

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