是否可以扩展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中定义的
我有一个带有时间戳(并发令牌)列的模型.我正在尝试编写集成测试,我会检查它是否按预期工作但没有成功.我的测试看起来如下
这是什么原因?它是否与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) 我正在尝试创建一个自定义成员资格提供程序,以便将Umbraco中的用户验证到Umbraco之外的现有数据库.从我到目前为止所学到的,创建一个继承umbraco.providers.members.UmbracoMembershipProvider并覆盖ValidateUser()函数的类应该没有多少工作量 .
我想知道当我希望将这个类包含在我的Umbraco项目中而不是在web.config文件中指定它时我应该怎么做?是否有可能以这种方式扩展Umbraco,重新编译源代码?
编辑 - 我写了一篇关于我如何在http://marcus-abrahamsson.se/post/Membership-Provider-in-Umbraco上实现这一点的文章
我正在使用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) 有没有办法在内存数据库中创建一个单独的(隔离的)EF7实例?我在使用xUnit编写的单元测试中使用实体框架7中的内存数据库.我希望能够并行运行测试,但这实际上是不可能的,因为内存数据库中的所有测试似乎都是一样的.我想要的是每个测试都要在内存数据库中隔离,而不是与并行运行的其他测试共享.
有没有办法注册在EF7中的模型保存到数据库之前调用的回调?我想要做的是设置我在所有模型上的ModifiedBy和ModifiedDate属性.我并不热衷于在每次保存之前手动执行此操作,因此我正在寻找更通用和自动的方式.
我们有一个 PWA(网络应用程序),用户可以将其添加到主屏幕,使其看起来更像一个应用程序。一些用户报告了一个奇怪的问题,有时只有在执行以下步骤后,该问题才会出现在 IOS 上。
错误在于,当您单击选择或日期输入控件时,似乎没有任何反应。首先,我认为应用程序中有一些覆盖层阻止了 ui 控件,但元素在单击时获得焦点,但不显示选项。
现在真的变得很奇怪了。当我尝试在选择输入下单击一点时,会选择一个选项。时间选择也发生了同样的事情。如果我首先单击时间选择输入控件,然后再单击一下,它就会更新时间。
因此,控件似乎在那里,但屏幕上看不到任何东西。我只能自己重现一次,但多个用户都报告了同样的事情。解决该错误的唯一方法是重新启动应用程序。
它似乎适用于所有显示某种模式/弹出框的本机 Safari 控件。
我本周末决定花点时间看看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) 我最近偶然发现了文件格式.tcc,据我所知,这是一种在c ++中编写模板类时将接口与实现分开的方法
但是,Visual Studio似乎没有认识到这种格式不会做任何"漂亮的打印",也就是说将关键字设为蓝色,类型为浅蓝色等.
有没有办法让视觉工作室识别这种格式,并使智能感知可用于它?
我正在编写一个存储过程,我首先在表中插入一个新行.然后,另一个查询需要此查询生成的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) 我正在尝试添加名为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) 我有一个由几个子类扩展的基类。现在,我想将父类的类型作为属性的类型。所有子类型也应有效。我尝试过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) 我有一个场景,其中可以在短时间内将许多事件发送到流。我想要一个混合了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) activerecord ×2
angular ×2
c# ×2
ruby ×2
.net ×1
c++ ×1
ios ×1
json ×1
polymer ×1
polymer-1.0 ×1
postgresql ×1
ruby-grape ×1
rxjs ×1
safari ×1
sql ×1
sql-server ×1
typescript ×1
umbraco ×1
vb.net ×1
xunit ×1