WinApp 8.1 (WinJS) 应用 AngularJS

WinApp 8.1 (WinJS) App with AngularJS

我目前正在开发一个原型,用于在开发 Win8.1 WinJS 应用程序时测试多个框架的可用性。在开发过程中,我发现了一个非常奇怪的表单行为。

这是新创建的 WinJS 应用程序的香草形式:

您可以看到输入框内的光标和复制按钮的一半。由于 drop-in 虚拟键盘会覆盖输入框,它会自动向上滚动内容。

现在我包括 AngularJS 1.3.1:

现在,没有光标,没有出现复制按钮,drop-in 键盘实际上覆盖了输入框。实际上无法更改不可见光标的位置,因此我只能在任何现有文本前添加字符。

我分析了两个版本的DOM树:

原版:

Angular 1.3.1 包括:

我们可以看到 angular 在 head 中嵌套了一个二级 head,包括一些奇怪的屁股 css 定义。此外,在 head 元素中创建了另一个 body 标签。我尝试使用以下代码段加载 angular 后删除它们:

<script type="text/javascript">
  $(function () {
    $('head > head, head > body').remove();
  });
</script>

这解决了问题,但现在,ng-show、ng-hide 指令不再起作用。 只有在 WinJS API 中使用 AngularJS 时,我才能观察到这个问题。我在互联网上进行了搜索,但没有找到有关该行为的任何线索 - 实际上有几篇博客描述了在 WinJS 应用程序中使用 AngularJS 的过程,但没有提及任何此类问题。

你们知道这里发生了什么吗?

我看到你包括 winstore-jscompat.js...请看这个问题:

https://github.com/MSOpenTech/winstore-jscompat/issues/8

..在这个 fork 中修复:

https://github.com/ClemMakesApps/winstore-jscompat/blob/master/winstore-jscompat.js

请注意,这可能会在某个时候被拉入主项目,因此这个问题应该会消失 "soon"。