3

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

这是一个新创建的 WinJS 应用程序的原版形式:

在此处输入图像描述

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

现在我包括 AngularJS 1.3.1:

在此处输入图像描述

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

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

香草:

在此处输入图像描述

Angular 1.3.1 包括:

在此处输入图像描述

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

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

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

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

4

1 回答 1

2

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

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

..这在这个叉子中是固定的:

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

请注意,这可能会在某个时候被拉入主项目,所以这个问题应该“很快”消失。

于 2015-01-19T21:01:19.043 回答