小编Abr*_*ris的帖子

使用输入/输出扩展组件

是否可以扩展Angular 2中的组件并仍然使用父级中的输入和输出?

export class Book {
  @Input() name;
}

export class EBook extends Book {
  @Input() downloadUrl;
  @Input() size;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试扩展组件时,除了需要属性/装饰器的代码(如输入和输出)之外,类中的所有内容都有效.我做了一个说明问题的plunker:http://plnkr.co/edit/cfTKgScbaXMmEMoGY0zr

Book是一个具有一个输入/输出Name的基本组件.

EBook继承自Book并添加输入/输出DownloadUrl,Size.

正如您在plunker中看到的那样,EBook没有获得名称,因为输入是在Book中定义的而不是在EBook中定义的

angular

9
推荐指数
2
解决办法
1616
查看次数

EF Core - 保存前设置时间戳仍使用旧值

我有一个带有时间戳(并发令牌)列的模型.我正在尝试编写集成测试,我会检查它是否按预期工作但没有成功.我的测试看起来如下

  1. 获取具有该实体的实体应该通过HttpClient调用从web api更新.
  2. 直接向Context发出请求并获得相同的实体
  3. 从步骤2更改实体的属性.
  4. 保存在步骤3中更新的实体.
  5. 从步骤1更改实体的属性.
  6. 使用带有HttpClient的新实体向Web Api发送put请求.
  7. 在我的Web API中,我首先从数据库中获取实体,从我从客户端获取的值设置属性和时间戳值.现在,我在api控制器中的实体对象具有与数据库中的实体对象不同的Timestamp值.现在我希望savechanges会失败,但事实并非如此.而是将实体保存到数据库并生成新的Timestamp值.我检查了Sql Server Profiler以查看生成的查询,结果是仍然使用旧的Timestamp值而不是我在api控制器中分配给实体的值.

这是什么原因?它是否与Timestamp有关,它是一个数据库生成的值,使EF忽略从业务层对其进行的更改?

完整的测试应用程序可以在这里找到:https://github.com/Abrissirba/EfTimestampBug

    public class BaseModel
    {
        [Timestamp]
        public byte[] Timestamp { get; set; }
    }

    public class Person : BaseModel
    {
        public int Id { get; set; }

        public String Title { get; set; }
    }

    public class Context : DbContext
    {
        public Context()
        {}

        public Context(DbContextOptions options) : base(options)
        {}

        public DbSet<Person> Persons{ get; set; }
    }

    protected override void BuildModel(ModelBuilder modelBuilder)
    { …
Run Code Online (Sandbox Code Playgroud)

entity-framework entity-framework-core

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

Umbraco的会员提供商

我正在尝试创建一个自定义成员资格提供程序,以便将Umbraco中的用户验证到Umbraco之外的现有数据库.从我到目前为止所学到的,创建一个继承umbraco.providers.members.UmbracoMembershipProvider并覆盖ValidateUser()函数的类应该没有多少工作量 .

我想知道当我希望将这个类包含在我的Umbraco项目中而不是在web.config文件中指定它时我应该怎么做?是否有可能以这种方式扩展Umbraco,重新编译源代码?

编辑 - 我写了一篇关于我如何在http://marcus-abrahamsson.se/post/Membership-Provider-in-Umbraco上实现这一点的文章

c# umbraco membership-provider

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

JSON到ActiveRecord(反序列化)

我正在使用Ruby,Grape和ActiveRecord构建Web API.来自ASP.NET Web API我习惯于从JSON到类对象的自动模型绑定,然后可以使用Entity Framework保存.我一直在寻找一下,看看在使用ActiveRecord时是否有类似的东西,但没有找到任何让我觉得我错过了一些非常明显的东西.将JSON反序列化为ActiveRecord模型的最佳方法是什么?

UPDATE

Matts答案适用于简单类型但是当我有关联时我得到以下错误:ActiveRecord :: AssociationTypeMismatch:连接器(#70297711668780)预期,得到哈希(#70297701477140)

这是我正在运行的代码

class Card < ActiveRecord::Base
   has_many    :connectors, autosave: true
end

class Connector < ActiveRecord::Base
   has_one  :card
   has_one  :connected_card, :class_name => "Card", :foreign_key => "connected_card_id"
end

json = "{\"id\":\"1\", \"connectors\": [{\"id\": 1, \"card_id\":1}]}"
card = Card.new(ActiveSupport::JSON.decode(json))
Run Code Online (Sandbox Code Playgroud)

ruby activerecord json ruby-on-rails ruby-grape

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

独立于内存数据库EF7

有没有办法在内存数据库中创建一个单独的(隔离的)EF7实例?我在使用xUnit编写的单元测试中使用实体框架7中的内存数据库.我希望能够并行运行测试,但这实际上是不可能的,因为内存数据库中的所有测试似乎都是一样的.我想要的是每个测试都要在内存数据库中隔离,而不是与并行运行的其他测试共享.

xunit entity-framework-core

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

实体框架7 SaveChanges

有没有办法注册在EF7中的模型保存到数据库之前调用的回调?我想要做的是设置我在所有模型上的ModifiedBy和ModifiedDate属性.我并不热衷于在每次保存之前手动执行此操作,因此我正在寻找更通用和自动的方式.

entity-framework-core

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

iOS原生控件在PWA中不可见/隐藏

我们有一个 PWA(网络应用程序),用户可以将其添加到主屏幕,使其看起来更像一个应用程序。一些用户报告了一个奇怪的问题,有时只有在执行以下步骤后,该问题才会出现在 IOS 上。

  1. 从主屏幕打开应用程序
  2. 使用该应用程序一段时间
  3. 将其放入后台
  4. 关闭屏幕一段时间
  5. 重新打开屏幕并将应用程序再次置于前台

错误在于,当您单击选择或日期输入控件时,似乎没有任何反应。首先,我认为应用程序中有一些覆盖层阻止了 ui 控件,但元素在单击时获得焦点,但不显示选项。

现在真的变得很奇怪了。当我尝试在选择输入下单击一点时,会选择一个选项。时间选择也发生了同样的事情。如果我首先单击时间选择输入控件,然后再单击一下,它就会更新时间。

因此,控件似乎在那里,但屏幕上看不到任何东西。我只能自己重现一次,但多个用户都报告了同样的事情。解决该错误的唯一方法是重新启动应用程序。

它似乎适用于所有显示某种模式/弹出框的本机 Safari 控件。

显示问题的 gif

safari ios progressive-web-apps

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

将角2模型与聚合物下拉结合

我本周末决定花点时间看看Angular 2和Polymer.我真的对棱角2感兴趣,并且真的想开始用它来构建一些东西.现在从Angular 2开始的一个缺点是还没有好的组件库.但是,由于Angular 2声称它应该与Web Components一起工作得很好,我想给Polymer一个尝试.我成功地将数据绑定到像输入字段这样的简单组件.我现在坚持的是如何将模型绑定到纸张下拉菜单的选定对象.因为我对这两者都很新,所以我真的不知道怎么做,但这是我到目前为止所尝试过的.有没有人完成将角度2模型绑定到聚合物下拉?

<paper-dropdown-menu  >
   <paper-menu class="dropdown-content" valueattr="id" [(ng-model)]="model">
       <paper-item *ng-for="#m of options" id="{{m.id}}" (click)="onClick()">{{m.name}}</paper-item>
   </paper-menu>
</paper-dropdown-menu>
Run Code Online (Sandbox Code Playgroud)

编辑:我现在已经创建了一个似乎可以接受的ValueAccessor,但有一个例外.我尝试通过在writeValue方法中设置selected属性来使下拉列表具有预先选择的值.起初这似乎有效,但在我做了这个改变后,我再也无法改变选定的值了.如果我对模板中的值进行硬编码,那么它似乎与角度和聚合物有关.我试着跟踪堆栈跟踪并比较两者之间的差异.当我对值进行硬编码时,执行select的setter方法,触发item-select事件.当我在valueAccessor中设置属性时,我遵循相同的跟踪,不再执行setter方法.似乎是角2和聚合物之间相互作用的问题.

import {Directive, ControlValueAccessor, ElementRef, Renderer, NG_VALUE_ACCESSOR, Provider, forwardRef} from "angular2/angular2"
import {isBlank, CONST_EXPR} from 'angular2/src/facade/lang';
import {setProperty} from "angular2/src/common/forms/directives/shared"

const PAPER_DROPDOWN_VALUE_ACCESSOR = CONST_EXPR(new Provider(
    NG_VALUE_ACCESSOR, {useExisting: forwardRef(() => PaperDrowpdownMenuAccessor), multi: true}));

@Directive({
  selector: 'paper-menu[ng-model]',
  bindings: [PAPER_DROPDOWN_VALUE_ACCESSOR]
})
export class PaperDrowpdownMenuAccessor implements ControlValueAccessor {

  onChange = (_) => {};
  onTouched = () => {};

  constructor(private _renderer: Renderer, private _elementRef: ElementRef) { …
Run Code Online (Sandbox Code Playgroud)

polymer polymer-1.0 angular

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

在Visual Studio中识别.tcc文件?

我最近偶然发现了文件格式.tcc,据我所知,这是一种在c ++中编写模板类时将接口与实现分开的方法

但是,Visual Studio似乎没有认识到这种格式不会做任何"漂亮的打印",也就是说将关键字设为蓝色,类型为浅蓝色等.

有没有办法让视觉工作室识别这种格式,并使智能感知可用于它?

.net c# c++ vb.net visual-studio

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

INSERT INTO存储过程的输出

我正在编写一个存储过程,我首先在表中插入一个新行.然后,另一个查询需要此查询生成的ID.是否可以使用OUTPUT访问prevoisly生成的ID?

这是我到目前为止所做的,而且几乎猜测它没有用

ALTER PROCEDURE [dbo].[addApp]

      @Name varchar(50) 
    , @logoUrl varchar(150)
    , @siteUrl varchar(150)
    , @userId int
    , @canvasWidth int
    , @canvasHeight int

AS
DECLARE @tempId INT
SET @tempid = INSERT INTO AppInfo (name, logoUrl, userId) 
              OUTPUT inserted.id 
              VALUES(@Name, @logoUrl, @userId);
INSERT INTO CanvasApps (id, siteUrl, canvasWidth, canvasHeight)
OUTPUT inserted.id
VALUES(@tempid, @siteUrl, @logoUrl, @userId);
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures

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

ActiveRecord错误的table_name

我正在尝试添加名为Media的ActiveRecord模型.迁移脚本如下所示

class CreateMedias < ActiveRecord::Migration
   def up
      create_table :medias do |t|
         t.string :filename
         t.timestamps null: false
      end
   end
   def down
       drop_table :medias
   end
end
Run Code Online (Sandbox Code Playgroud)

这将在我的PostgreSQL数据库中创建一个名为medias的表,就像我预期的那样.我的ActiveRecord类看起来像这样

class Media < ActiveRecord::Base

end
Run Code Online (Sandbox Code Playgroud)

根据我的理解,它应该是这样的.ActiveRecord类的名称应为单数,表名称应为复数.但是,当我尝试创建一个新的Media对象时

Media.create filename: "abc.png"
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation    "media" does not exist
LINE 5:                WHERE a.attrelid = '"media"'::regclass
                                      ^
:           SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                 pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
            FROM pg_attribute a LEFT JOIN pg_attrdef d
              ON a.attrelid = d.adrelid AND a.attnum = d.adnum
           WHERE a.attrelid = '"media"'::regclass
             AND …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql activerecord ruby-on-rails

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

Typescript typeof类和派生类

我有一个由几个子类扩展的基类。现在,我想将父类的类型作为属性的类型。所有子类型也应有效。我尝试过typeof,但是不起作用。关于如何将基类的类型作为属性的类型的任何想法?我想要引用该类型的原因是我希望能够创建Class的新实例,例如new test.componentType()应该创建Child2的新实例。

class Parent {

}

class Child1 extends Parent {

}

class Child2 extends Parent {

}

interface Config {
    componentType: typeof Parent;
}

const test: Config = {
    componentType: typeof Child2
}

new test.componentType() -> should create a new instance of Child2
Run Code Online (Sandbox Code Playgroud)

typescript

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

RXJS:节流时间加上最后一个值

我有一个场景,其中可以在短时间内将许多事件发送到流。我想要一个混合了debounceTime和油门时间的运算符。

以下演示可以用来说明我想要的东西,https://stackblitz.com/edit/rxjs6-demo-jxbght?file=index.ts。我希望订户获得第一个发出的事件,然后等待x ms。如果在等待时间内发出了更多事件,则最后一个事件应在等待时间内发送给订户。就像去抖一样,应该在每个新发出的事件上重置等待时间。

如果在1秒钟内单击按钮3次,则应打印1和3。如果在1秒钟内仅单击1次,则应仅打印4。如果再单击3次,则应打印5和7。

这对debounceTime不起作用,因为它不给我第一个事件,对节流时间也不起作用,因为在等待时间结束后,这不给我最后一个发出的值。

关于如何实施此建议?

更新

我在Martins的帮助下创建了一个自定义运算符。不知道它是否可以100%正确地工作,或者是否有更好的方法来执行此操作,但是它似乎可以满足我的要求。

import { Observable, empty } from 'rxjs';
import { exhaustMap, timeoutWith, debounceTime, take, startWith } from 'rxjs/operators';

export function takeFirstThenDebounceTime(waitTime) {
    return function takeFirstThenDebounceTimeImplementation(source) {
        return Observable.create(subscriber => {
            const subscription = source.
                pipe(
                    exhaustMap(val => source.pipe(
                        timeoutWith(waitTime, empty()),
                        debounceTime(waitTime),
                        take(1),
                        startWith(val)
                    )),
                )
                .subscribe(value => {
                    subscriber.next(value);
                },
                    err => subscriber.error(err),
                    () => subscriber.complete());

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

rxjs

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