小编Ben*_*lts的帖子

Typescript项目之间的依赖关系(在一个回购中)

我有一系列的Typescript项目(每个都是一个实际的可编译目标,有自己的tsconfig.json).它们是一个代码存储库中的兄弟目录,如下所示:

myrepo
--/common
--/project1
--/project2
Run Code Online (Sandbox Code Playgroud)

为了在project1和之间共享代码project2,我打破了一些共享代码common.我想允许project1project2编码从中导入类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中的子项目?

typescript

14
推荐指数
1
解决办法
471
查看次数

个人资料手机Safari(iPad)javascript?

移动Safari(iPad)上的Javascript性能对我的桌面应用程序更敏感.一些在台式机上运行超顺畅的操作需要一段时间才能在iPad上运行,我想跟踪瓶颈所在的位置.有没有办法在iPad上配置Javascript代码?

javascript mobile-safari ipad

13
推荐指数
1
解决办法
2811
查看次数

通过Chrome for Android(平板电脑)上的Javascript全屏

我想让我的网络应用隐藏Chrome移动版上的浏览器标签和地址栏.document.documentElement.requestFullScreen()似乎没有效果.window.scroll(0,1)在平板电脑上也不起作用.

如果可能的话,我也会喜欢iOS上的Chrome和/或Safari的好解决方案.

有任何想法吗?我使用的是Chrome 29 for Android.

android google-chrome fullscreen

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

给定一些AABB,找到包含它们的最小总表面积AABB?

我有许多需要渲染到HTML5画布上的物体.我的输入是轴对齐边界框的有序列表.这些盒子经常重叠,但也常常在它们之间留下大面积的空白区域.

我想最小化我必须创建的画布表面区域的数量,以便以正确的顺序渲染所有这些项目,同时不必在多个画布上渲染单个对象的部分(从而防止仅仅创建画布的简单解决方案)紧紧地适合所有占用的空间).

所以基本上,我希望在同一个画布上渲染紧密的对象组,而非重叠的对象应该在单独的画布上渲染.但并非所有重叠的对象都应该在单个画布上渲染 - 例如,一个非常高且非常宽的对象略微重叠以形成L仍然应该在两个单独的画布上渲染,因为组合它们会导致大量浪费的画布空间在L的开放部分

维持Z顺序也会导致一些困难的情况.例如,下图代表一种可能的安排:

在此输入图像描述

在这种情况下,您可能希望将蓝色和绿色图层组合到一个画布中,但是如果不包括红色图层,则无法以这种方式生成正确的分层,并且最终会产生大量死区.

但是,您也不能将图层组合限制为Z顺序中连续的项目.Z顺序可能与上面的图像相同,但红色项目可能不会与其他项目重叠,在这种情况下,您想要组合蓝色和绿色图层.

我正在努力为这个问题提出一个好的算法.有人关心进来吗?

algorithm math graphics html5 html5-canvas

12
推荐指数
1
解决办法
317
查看次数

用于查找在git分支上创建的所有TODO注释的脚本?

我有一个功能分支,它已经变得非常大.在我们的代码中有很多挥之不去的TODO注释,但是我想在尚未合并到master中的提交中找到添加到代码中(并且尚未删除)的所有TODO.我怎么能这样做?

git

12
推荐指数
3
解决办法
798
查看次数

Angular 2:实现自定义上下文菜单

我正在实现一个Angular 2属性指令,允许我向这样的元素添加自定义上下文菜单:

<p context-menu="myItems">Hello world</p>
Run Code Online (Sandbox Code Playgroud)

该指令添加了一个鼠标事件处理程序来捕获右键单击,然后想法是构造一个上下文菜单,将其添加到DOM,然后在用户完成时将其销毁.

我有一个实现上下文菜单本身的组件.我想构造该组件,在其上调用一个方法来设置项目列表,然后将其添加到DOM.

看起来我可以用AppViewManager.createHostViewInContainer来做到这一点.这是一个合适的方法吗?如果是这样,有没有办法构造/获取ElementRef,document.body以便我可以告诉createHostViewInContainer在那里构建组件?显然我不希望我的菜单被剪切到我正在添加上下文菜单的元素中.

angular

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

IndexedDB的锁定模型?

IndexedDB如何处理多个选项卡,每个选项卡都有异步交易?事务是否完全锁定了所有相关的对象存储?如果一个标签处理一个数据而另一个标签没有做同样的事情,我怎么能保证?

javascript html5 offline-mode

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

在Play 2.0视图中转义JavaScript字符串?

是否有一种简单的方法来转义字符串以在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)

如果消息中有换行符或单引号,则会失败.最好的方法是什么?

playframework-2.0

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

Scala - "if(true)Some(1)"而不必输入"else None"

在scala中,如果你有一个Option,你可以通过执行oldOption.map(_.something)来获得另一个Option.我想要做的是采用布尔值并做同样的事情.换句话说,我想要速记以下内容:

if(someCondition)
  Some(data)
else
  None
Run Code Online (Sandbox Code Playgroud)

是否有一种惯用的方法可以从这样的布尔中获取选项而不必执行"其他无"?

scala

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

Angular 2:将依赖项注入@CanActivate?

在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这种情况?

angular2-routing angular

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