Angular组件有装饰器:
@Component({ ... })
export class MyAngularComponent {
@Input() myInputParam: MyType;
@Input() myOtherInputParam: MyOtherType;
@Output() myOutputParam: MyOtherOutputType;
}
Run Code Online (Sandbox Code Playgroud)
我有一个Angular库,如果我能以编程方式检索@Input()
给定组件类(虽然属于库)中的 Angular的装饰器,可以避免很多代码重复(并减少bundle大小).
但我怀疑这种实现的可移植性.我已经读过某个地方,如果Angular应用程序是在启用了AoT的情况下构建的(并且只使用了Angular装饰器),则不需要Reflect polyfill(在运行时读取装饰器所需).所以我认为我不能只使用Reflect.*
.Angular如何存储装饰器?是否有可靠,面向未来的方式来阅读它们?
缩小应该不是问题,因为它只用于读取库组件的装饰器,所以我可以控制它.
所以,如果这是可行的方式(或者不是,我仍然感兴趣),我怎么能读取那些装饰器?
angular-decorator angular2-decorators angular-compiler-cli angular
我正在尝试建立一个国际化的网站,我翻译的每种语言都有一个URL前缀(例如./fr/my/page
或/it/my/page
).
我尝试了JMSI18nRoutingBundle,它几乎没有其他配置,效果很好.但我真的想自动确定用户首选语言.用户最喜欢的语言被传输到Accept-Language
HTTP标头,我想选择我翻译的第一种语言.
这是我的JMSI18nRouting配置:
jms_i18n_routing:
default_locale: en
locales: [fr, en]
strategy: prefix_except_default
Run Code Online (Sandbox Code Playgroud)
我想要这种行为:
http://mywebsite.com/my/page
执行自动语言检测,然后重定向到/xx/...
(xx
用户喜欢的语言),因为URL中未指定语言 - 目前默认语言为EN.
http://mywebsite.com/XX/my/page
以XX语言显示页面 - 目前,工作正常.
有没有想过这样做?配置好吗?
哦,如果有人有解决方案在纯Symfony中做同样的事情(没有JMSI18nRoutingBundle),我的耳朵是敞开的.
编辑/找到一种方法,使用JMSI18nRoutingBundle进行智能重定向,以尊重用户最喜欢的语言或让用户强制显示语言.看我的回答.
每年左右,我都有一个移动应用程序要做,我选择 Xamarin Forms 来做。在开始一个空白项目之前,我试图了解哪些框架和模式是“趋势”的,并且我正在尝试构建一些可靠的东西。
在我的最后一个应用程序中,我的研究使我使用 Autofac 为 IoC 和 MvvmLight 进行了自定义设置,以及一堆与它们配合良好的其他自定义服务。
因为我来自网络,所以我没有逃到 Reactive Extensions 浪潮中,尤其是作为一个 Angular 开发者。所以,这一次,我的设置基于 Splat(我更喜欢 Autofac,但是……权衡,你知道)和 ReactiveUI。
我很满意。但是,在我上次申请中,还有一件事让我非常不满意:导航。网络上的大多数示例都是基本的(基本导航页面上的推送/弹出),没有库可以很好地完成它,而 ReactiveUI 的导航是......好吧,有限。
所以我不得不制作我自己的根视图和导航服务,我的意思是,我没有写它,但是Kent Boogaart 在一篇博客文章中做了(如果你有兴趣回答我的问题,我建议你看一下 impl to鉴于我的用例,更好地了解限制)。它看起来不错。一开始我很喜欢它,然后我不得不处理更复杂的场景,比如导致MasterDetailPage
, 和TabbedPage
s的登录页面。
再一次,我花了几个小时与晦涩的 XF 或 Android 异常和复杂的导航逻辑作斗争,以便制作一个处理非常常见用例的服务。我无法在网上找到有效的示例,看起来每个人都只构建具有三个屏幕的示例应用程序,除了 NavigationPage 之外没有其他任何东西。
我迷路了。
这是我目前拥有的 API,来自 Kent Boogaart 的博客。
根视图:
public interface IView
{
IObservable<IViewModel> PagePopped { get; }
IObservable<Unit> PushPage(IViewModel pageViewModel, string contract, bool resetStack, bool animate);
IObservable<Unit> PopPage(bool animate);
IObservable<Unit> PushModal(IViewModel modalViewModel, string …
Run Code Online (Sandbox Code Playgroud) 在PHP中安装pthreads(用于使用Threaded,Thread,Worker,Pool等)非常"复杂",当你使用没有启用ZTS的Linux ditribution软件包时,这不是很实用(你必须下载PHP源代码并编译它们 - 辅助问题:为什么默认情况下不激活ZTS?).
几天前我第一次测试了HHVM,性能只是......令人印象深刻.我正在用PHP编写一种服务器,我需要线程.我认为HHVM原生支持它们.事实并非如此(未知类).
我可以在HHVM文档上找到有关pthreads的文档,但那是官方的PHP文档.我在互联网上的某处读到HHVM不支持Threads.
那么......如果HHVM支持线程,如何在HHVM上安装pthread?ZTS怎么样?
我有一个看起来像这样的代码:
$app->add(function($req, $res, $next) {
# closure A
$res->on('end', function($res) use ($req) {
# closure B
});
$next();
});
Run Code Online (Sandbox Code Playgroud)
如您所见,我在闭包中有一个闭包。Closure B 正在接收$res
来自事件的 ponse,所以它没有问题。但它也use
荷兰国际集团$req
从封闭A. uest在这里,我有一个关于的作用域怀疑use
“d变量,我看到两种可能性:
$res->on
。所以有很多闭包 B 都有自己的作用域,它们从闭包 A 的 used 变量中继承了一次。$req
并$res
在闭包 A 中(正常行为......)但也将替换$req
先前创建的闭包 B 使用的。如果在请求 #2 到达之前没有响应请求 #1,这将是有问题的(这是基于事件循环的异步代码)。我希望我足够清楚。我问这个是因为,例如,在 JavaScript 中,我们有时必须使用回调生成器来确保子闭包的作用域不被替换。
编辑:我尝试了一个理论上做同样事情的代码,但它更容易测试:
$a = function($var) {
return function() use ($var) {
var_dump($var);
};
};
$fn1 = $a((object) ['val' => 1]);
$fn2 = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现本教程中的代码,但比例要大得多(半径 = 100000 单位)。
我不知道大小是否重要,但在我的地球上渲染云有一个奇怪的渲染。正如教程中所做的那样,我使用两个球体和三个纹理(地球贴图、凹凸贴图、云)。
结果如下(如果云更近,情况会更糟):
云层距离行星表面越近,这种故障就越明显。如果云足够远(但这不现实),问题就会完全消失。
我能做些什么?
我知道禁止在扩展接口中覆盖接口的属性,修改它们的类型.
我正在寻找一种替代解决方案,它可以让我不复制第一个界面的内容(它非常大).
这是我的第一个天真的方法.给定基接口:
interface OrginalInterface {
title?: string;
text?: string;
anotherProperty?: SomeType;
// lots of other properties
}
Run Code Online (Sandbox Code Playgroud)
此接口在库中定义.我无法修改它(例如,添加泛型)只是为了满足我在扩展接口中的需求.
在包装库(我的)使用的扩展接口中,我想重用现有的接口,同时使一些字段具有不同的类型:
interface ExtendedInterface extends OriginalInterface {
title?: string | ReactElement<any>;
text?: string | ReactElement<any>;
}
Run Code Online (Sandbox Code Playgroud)
但这是不可能的.
error TS2430: Interface 'ExtendedInterface' incorrectly extends interface 'OriginalInterface'.
Types of property 'title' are incompatible.
Type 'ReactElement<any>' is not assignable to type 'string'.
Run Code Online (Sandbox Code Playgroud)
我还尝试将两个接口合并在一起:
type Extended = OriginalInterface & NewInterfaceWithOverridingPropertiesOnly;
Run Code Online (Sandbox Code Playgroud)
虽然这通过了编译,但它不起作用.如果使用此类型声明变量,则只能分配具有兼容结构的对象OriginalInterface
.
我觉得打字稿的类型系统没有为我提供任何其他的方式来表达我需要声明的新型衍生自OrginalInterface
.我不需要新类型可分配给OriginalInterface
; 我只是需要它来重用大多数属性OriginalInterface
.
我需要类似映射类型的东西,其中包含属性受影响的条件.也许来自预发行TypeScript 2.8的 …
我有两个实体User\User
,Misc\Notification
我希望有可能通过这样做来获取用户实体内的用户通知$user->getNotifications()
.通常我对这种关系没有任何问题.
请参阅下面的代码(我刚刚添加了TicketApp关系作为示例,因为此关系有效且完全相同):
User\User : properties
/**
* This is working
* @ORM\OneToMany(targetEntity="[...]\Entity\Ticket\TicketApp", mappedBy="author")
*/
private $tickets;
/**
* This is not
* @ORM\OneToMany(targetEntity="[...]\Entity\Misc\Notification", mappedBy="receiver", fetch="EXTRA_LAZY")
*/
private $notifications;
Run Code Online (Sandbox Code Playgroud)
User\User : __construct()
$this->tickets = new \Doctrine\Common\Collections\ArrayCollection();
$this->notifications = new \Doctrine\Common\Collections\ArrayCollection();
Run Code Online (Sandbox Code Playgroud)
Misc\Notification : properties
/**
* @ORM\ManyToOne(targetEntity="[...]\Entity\User\User", inversedBy="notifications")
* @ORM\JoinColumn(nullable=false)
*/
private $receiver;
Run Code Online (Sandbox Code Playgroud)
这似乎是好的(或者也许今晚我完全失明了......).问题是:$user->getNotifications()
返回null
而不是Doctrine Collection
对象.我的表中有数据.这种类型的代码工作并返回两个通知:
$em->getRepository('[...]:Misc\Notification')->findByReceiver($user);
Run Code Online (Sandbox Code Playgroud)
另外,我注意到在Symfony调试工具栏中,使用时不会触发查询$user->getNotifications()
.
php ×3
angular ×1
architecture ×1
closures ×1
doctrine ×1
hhvm ×1
javascript ×1
navigation ×1
overriding ×1
reactiveui ×1
symfony ×1
three.js ×1
types ×1
typescript ×1
webgl ×1
zbuffer ×1