我有一系列的Typescript项目(每个都是一个实际的可编译目标,有自己的tsconfig.json).它们是一个代码存储库中的兄弟目录,如下所示:
myrepo
--/common
--/project1
--/project2
Run Code Online (Sandbox Code Playgroud)
为了在project1和之间共享代码project2,我打破了一些共享代码common.我想允许project1和project2编码从中导入类common,但不能从彼此common导入(并且不应该从其他两个中导入类).
理想情况下,代码project1可能如下所示:
import {CommonClass} from 'common/commonclass';
Run Code Online (Sandbox Code Playgroud)
我找到了一种方法,允许导入正常工作,将其放入tsconfig.json project1:
"baseUrl":".",
"paths":{
"*":["*","../*"]
}
Run Code Online (Sandbox Code Playgroud)
但是,我还没有找到一种方法来限制哪些其他子项目可以成为一个主题import.我尝试过使用rootDirs,希望它能以同样的方式限制允许的源文件rootDir,但实际上并没有.
我怎样才能将每个项目中可导入的代码列入白名单?或者是否有一些更好的方法来构建我不知道的Typescript中的子项目?
移动Safari(iPad)上的Javascript性能对我的桌面应用程序更敏感.一些在台式机上运行超顺畅的操作需要一段时间才能在iPad上运行,我想跟踪瓶颈所在的位置.有没有办法在iPad上配置Javascript代码?
我想让我的网络应用隐藏Chrome移动版上的浏览器标签和地址栏.document.documentElement.requestFullScreen()似乎没有效果.window.scroll(0,1)在平板电脑上也不起作用.
如果可能的话,我也会喜欢iOS上的Chrome和/或Safari的好解决方案.
有任何想法吗?我使用的是Chrome 29 for Android.
我有许多需要渲染到HTML5画布上的物体.我的输入是轴对齐边界框的有序列表.这些盒子经常重叠,但也常常在它们之间留下大面积的空白区域.
我想最小化我必须创建的画布表面区域的数量,以便以正确的顺序渲染所有这些项目,同时不必在多个画布上渲染单个对象的部分(从而防止仅仅创建画布的简单解决方案)紧紧地适合所有占用的空间).
所以基本上,我希望在同一个画布上渲染紧密的对象组,而非重叠的对象应该在单独的画布上渲染.但并非所有重叠的对象都应该在单个画布上渲染 - 例如,一个非常高且非常宽的对象略微重叠以形成L仍然应该在两个单独的画布上渲染,因为组合它们会导致大量浪费的画布空间在L的开放部分
维持Z顺序也会导致一些困难的情况.例如,下图代表一种可能的安排:

在这种情况下,您可能希望将蓝色和绿色图层组合到一个画布中,但是如果不包括红色图层,则无法以这种方式生成正确的分层,并且最终会产生大量死区.
但是,您也不能将图层组合限制为Z顺序中连续的项目.Z顺序可能与上面的图像相同,但红色项目可能不会与其他项目重叠,在这种情况下,您想要组合蓝色和绿色图层.
我正在努力为这个问题提出一个好的算法.有人关心进来吗?
我有一个功能分支,它已经变得非常大.在我们的代码中有很多挥之不去的TODO注释,但是我想在尚未合并到master中的提交中找到添加到代码中(并且尚未删除)的所有TODO.我怎么能这样做?
我正在实现一个Angular 2属性指令,允许我向这样的元素添加自定义上下文菜单:
<p context-menu="myItems">Hello world</p>
Run Code Online (Sandbox Code Playgroud)
该指令添加了一个鼠标事件处理程序来捕获右键单击,然后想法是构造一个上下文菜单,将其添加到DOM,然后在用户完成时将其销毁.
我有一个实现上下文菜单本身的组件.我想构造该组件,在其上调用一个方法来设置项目列表,然后将其添加到DOM.
看起来我可以用AppViewManager.createHostViewInContainer来做到这一点.这是一个合适的方法吗?如果是这样,有没有办法构造/获取ElementRef,document.body以便我可以告诉createHostViewInContainer在那里构建组件?显然我不希望我的菜单被剪切到我正在添加上下文菜单的元素中.
IndexedDB如何处理多个选项卡,每个选项卡都有异步交易?事务是否完全锁定了所有相关的对象存储?如果一个标签处理一个数据而另一个标签没有做同样的事情,我怎么能保证?
是否有一种简单的方法来转义字符串以在Play 2.0的视图中用作JavaScript字符串?例如,这是一个简单的视图,在onclick中创建一个带有确认框的链接:
@(text:String,link:Call,message:String)
<a href="@link" onclick="return confirm('@message');">@text</a>
Run Code Online (Sandbox Code Playgroud)
如果消息中有换行符或单引号,则会失败.最好的方法是什么?
在scala中,如果你有一个Option,你可以通过执行oldOption.map(_.something)来获得另一个Option.我想要做的是采用布尔值并做同样的事情.换句话说,我想要速记以下内容:
if(someCondition)
Some(data)
else
None
Run Code Online (Sandbox Code Playgroud)
是否有一种惯用的方法可以从这样的布尔中获取选项而不必执行"其他无"?
在Angular 2中,您可以@CanActivate为组件指定注释,您可以在其中确定是否应激活组件.它不是接口的原因是因为在组件被实例化之前调用了回调.问题是,我无法找到一种方法来将依赖注入到该回调中.我需要我的服务,告诉我我是否登录(以及作为谁)以确定是否允许路由到特定组件.
如何将依赖项注入@CanActivate回调?我正在使用ES5,但这不起作用:
app.ListsComponent = ng.router.CanActivate([
app.SessionService,
function(session, instruction) {
console.log(session);
return true;
}
])(app.ListsComponent);
Run Code Online (Sandbox Code Playgroud)
编辑:或者,我可以routerOnActivate在组件上使用生命周期事件,并使用它this.router.navigate来发送用户,如果他们不应该在那里.缺点是它会破坏浏览器历史记录:如果每次到达特定URL时我都会异步重定向您,则无法在浏览器中非常有用地使用"后退"按钮.有没有办法router.navigate使用history.replaceState而不是history.pushState这种情况?
angular ×2
html5 ×2
javascript ×2
algorithm ×1
android ×1
fullscreen ×1
git ×1
graphics ×1
html5-canvas ×1
ipad ×1
math ×1
offline-mode ×1
scala ×1
typescript ×1