小编jsg*_*pil的帖子

获取SVG中路径的维度

我需要从JavaScript中获取SVG中<path>屏幕上的维度.

我的SVG上没有任何"转换"或"缩放"(转换,缩放).唯一改变的是viewBox,它将改变SVG中所有元素的大小.

我一直在使用myPath.getBBox(),即使我更改了我的viewBox,返回的宽度保持不变.

所以我想知道这个viewBox与路径大小的关系是什么.也许有一个计算宽度的函数?

javascript svg bounding-box

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

实体框架具有相同密钥的两个不同对象不起作用

我试图在我的主对象中插入对象引用,但如果我不使用以前的托管对象,EntityFramework会抱怨.我只是想避免在创建对象时依赖dbContext.

简化示例:

class Movie {
    public ApplicationUser Owner { get;set; }
}

var myMovie = db.Movies.FirstOrDefault(m, m => m.Id = 1);
myMovie.Owner = new ApplicationUser { Id = 2 };

// I have to attach or change its state, otherwise, EF will complain the object is not complete
db.Entry(myMovie.Owner).State = EntityState.Unchanged;
Run Code Online (Sandbox Code Playgroud)

不知何故,如果上次加载了相同的ApplicationUser,我会收到此错误:

保存或接受更改失败,因为"ApplicationUser"类型的多个实体具有相同的主键值.确保显式设置的主键值是唯一的.确保在数据库和Entity Framework模型中正确配置了数据库生成的主键.使用实体设计器进行数据库优先/模型优先配置.使用'HasDatabaseGeneratedOption'流畅API或'DatabaseGeneratedAttribute'进行Code First配置.

我该如何避免这个问题?最理想的是,我不想告诉那个新对象的状态.

c# entity-framework

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

基于路线导航订阅Angular 2中的数据变化

假设我有以下路线:

[
    {
        path: 'view',
        children: [
            {

                path: ':id',
                component: CustomerViewComponent,
                resolve: {
                    customerViewData: CustomerResolve,
                    edit: ViewRouteResolve // Returns false
                },
                data: {
                    other: false
                },
                children: [
                    {
                        path: 'edit',
                        resolve: {
                            edit: EditRouteResolve // Returns true
                        },
                        data: {
                            other: true
                        }
                    },
                    {
                        path: '',
                        data: {
                            other: false
                        }
                    }
                ]
            }
        ]
    },
    { path: '', component: CustomerListComponent }
]
Run Code Online (Sandbox Code Playgroud)

我想使用CustomerViewComponentfor /view/ 和 /view/1/edit

问题是我无法在我的组件中捕获此数据更改。我已经尝试过resolveordata并且我无法捕捉到任何变化......

此代码不会按预期触发:

this.route.data.subscribe(m => …
Run Code Online (Sandbox Code Playgroud)

angular-routing angular

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

Rxjs Observable按顺序运行并返回一个数组

var arr = [obs1, obs2, obs3];
Observable.forkJoin(...arr).subscribe(function (observableItems) {})
Run Code Online (Sandbox Code Playgroud)

并行运行observable并返回一个数组.

如何顺序运行observable 返回一个数组.我不想为每个观察者打电话,所以concat()不适合我.

我想收到相同的最终结果,forkJoin但顺序运行.

它存在吗?或者我必须编写自己的可观察模式?

observable rxjs

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

IAsyncEnumerable 中缺少等待运算符时的警告消息

当调用这样的方法而不执行await任务时,我们可以返回以下内容:

public Task<bool> GetBoolAsync()
{
    return Task.FromResult(true);
}
Run Code Online (Sandbox Code Playgroud)

a 相当于什么IAsyncEnumerable<>并避免警告。

async IAsyncEnumerable<bool> GetBoolsAsync() // <- Ugly warning
{
    yield return true;
    yield break;
}
Run Code Online (Sandbox Code Playgroud)

警告 CS1998 此异步方法缺少“await”运算符,并将同步运行。考虑使用“await”运算符等待非阻塞 API 调用,或使用“await Task.Run(...)”在后台线程上执行 CPU 密集型工作。

c# async-await iasyncenumerable

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

连续的Azure Web Jobs如何是幂等的并发送电子邮件?

在网上阅读了大量关于Azure WebJobs的信息之后,文档说工作应该是幂等的,另一方面,博客说他们使用WebJobs做"收取客户费用","发送电子邮件"等行为.

该文档说,在具有队列的多个实例上运行连续的WebJob可能会导致多次调用.人们是否真的忽略了他们可以向客户收取两次费用或两次发送电子邮件的事实?

如何确保我可以在扩展的Web应用程序上运行带有队列的WebJob,并且只处理一次消息?

email azure idempotent azure-webjobs

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

屏幕阅读器读取锚标签或角色="对话框"中的所有内容

很久以前,屏幕阅读器决定开始阅读锚标签<a>中的所有内容作为功能.这允许链接变短,其中上下文在视觉上明显但对于屏幕阅读器来说是模糊的.
然后开发人员可以编写类似于此行的内容,以使屏幕阅读器读取所有内容:

<a href="#">More<span style="display: none;"> information about XYZ</span></a>
Run Code Online (Sandbox Code Playgroud)

但是,使用HTML5,锚标记变得"透明",并允许在其中包含更广泛的元素.http://dev.w3.org/html5/markup/a.html#a
这个新的链接功能很棒,因为我们可以用正确的语义封装整个可点击的对象.
不幸的是,阅读隐藏在链接中的所有内容的功能现在正在咬我们:

<li><a href="#"> [ complicated markup ] </a></li>
Run Code Online (Sandbox Code Playgroud)

在上面的标记中,使用任何隐藏的内容将被读取给屏幕阅读器.
将属性添加role="dialog"到<div> 时会发生同样的问题

阻止屏幕阅读器阅读现在真正隐藏的内容的诀窍是什么?

我正在使用IE10和Windows 8讲述人

html5 screen-readers wai-aria

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

在swift中比较单个if结构中的非可选bool有什么问题

我已经在Swift编写了一段时间,我想我必须放一个!我没有立即定义的所有let字段变量.

现在我注意到这段代码没有编译,我真的很惊讶?为什么是这样?

class MyClass : Mapper {
    var a: Bool!

    required init?(_ map: Map) {
    }

    // Mappable
    func mapping(map: Map) {
        a   <- map["a"]
    }
}

let myClass = MyClass()

if myClass.a { // Compiler not happy
    //  Optional type 'Bool!' cannot be used as a boolean; test for '!= nil' instead
}

if true && myClass.a { // Compiler happy

}

if myClass.a && myClass.a { // Compiler happy

}
Run Code Online (Sandbox Code Playgroud)

Apple Swift 2.2版

编辑
有些人指出为什么我使用一个let永远不会改变的变量.我提到它是用于字段变量,但我缩短了示例.使用ObjectMapper(http://github.com/Hearst-DD/ObjectMapper …

mapper swift

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

Angular 2单元测试在嵌套ngModel元素时必须多次调用whenStable

我很清楚这里的这个错误:

https://github.com/angular/angular/issues/10148

其中提到需要调用fixture.detectChanges();then a fixture.whenStable()

但是,当我开始嵌套每个使用 ngModel 值访问器提供程序的元素时,我必须在循环中调用这两个方法。

有其他方法可以做到这一点吗?它看起来效率不是很高,我经常需要编辑这个函数。我可以用递归方法来简化它以防止重复,但这不是问题。

export function bugWhenStable(fixture: ComponentFixture<any>): Promise<any> {
    let def = new Promise(resolver => {
        fixture.detectChanges();
        fixture.whenStable().then(() => {
            fixture.detectChanges();
            fixture.whenStable().then(() => {
                fixture.detectChanges();
                fixture.whenStable().then(() => {
                    resolver();
                });
            });
        });
    });

    return def;
}
Run Code Online (Sandbox Code Playgroud)

我的组件做了这样的事情:

<wm-comp1 [(ngModel)]="value"></wm-comp1>
Run Code Online (Sandbox Code Playgroud)

在 Comp1 中我有

<wm-comp2 [(ngModel)]="value"></wm-comp2>
Run Code Online (Sandbox Code Playgroud)

ETC。

testing angular

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

如何清除提供者缓存以与 Angular 7 中的 useFactory 一起使用

我正在动态创建元素,其中一个元素使用@Inject解析为工厂的令牌。

问题在于工厂实例缓存在节点索引上。一旦我的元素从视图中消失并返回,我希望能够调用我的工厂函数;但我不。相反,我得到了这个工厂实例的缓存版本。

在此输入图像描述

如何确保对象从视图中消失后不使用缓存?

基本上,当我的@Component构造函数被调用时,我期望一个全新的服务。不是缓存服务。

@Inject(FORM_GROUP_MANAGER_SERVICE)
private formGroupManagerService: FormGroupManagerServiceImpl
Run Code Online (Sandbox Code Playgroud)
{
    provide: FORM_GROUP_MANAGER_SERVICE,
    useFactory: (structureControlService, createTonicControlFactory, parent) => new FormGroupManagerService(
        structureControlService,
        createTonicControlFactory,
        parent
    ),
    deps: [StructureControlService, FORM_GROUP_MANAGER_SERVICE_CREATE_CONTROL, [new Optional(), FormGroupManagerService]]
},
Run Code Online (Sandbox Code Playgroud)

dependency-injection angular angular7

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

从 Angular 中的模板引用变量获取 ElementRef

在下面的代码中

<input #myRef1 />
<input #myRef2 my-custom-attribute />
Run Code Online (Sandbox Code Playgroud)

将会#myRef1是一个ElementRef, 并且#myRef2将会是MyCustomAttributeComponent指令性的。基本上,它隐式地找到第一个组件并将其关联到模板引用变量。我可以强制我想要哪个指令/组件,这要归功于exportAs,但在这里,我实际上在两种情况下都想要ElementRef

有没有什么东西可以强制#myRef2成为一个ElementRef 没有TypeScript的东西@ViewChild(..., { read: ElementRef })。我需要在我的模板中myRef2作为 an进行访问ElementRef

angular angular-template-variable

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

Symfony,只能通过前进行动

是否可以阻止直接访问symfony中的操作.该操作仅可通过"前进"访问.基本上,这是一种查看请求是否来自其他操作的方法.

我正在尝试实现这一点,因为第一个操作会处理大量的验证,如果失败,它会继续执行该操作.如果成功,它将转向适当的行动; 此操作需要具有安全输入(从第一个操作验证).为了保持代码DRY,第二个动作不需要再次重新验证所有输入.

那为什么不做一个私有的方法?第二个动作是一个插件,它是在飞行中决定它从第一个动作开始,该动作有其自己的一组其他未来动作/模板.简单地转发而不是试图处理Symfony已经处理过的大量案例更有意义.

model-view-controller symfony1

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

在静态函数范围内使用WebJobs对DbContext进行依赖注入Ninject

有没有办法挂钩到WebJobs函数执行,所以我们可以为每个函数设置一个范围?像这样的东西:

kernel.Bind<MyDbContext>().ToSelf().InWebJobFunctionScope();

我想使用InScope()来自Ninject,但我不知道在哪里可以找到类似于静态的东西HttpContext.Current但是对于当前正在运行的WebJob.

dependency-injection azure-webjobs azure-webjobssdk

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