当前位置: 首页 > 面试题库 >

如何使Angular.js在Windows 8应用商店中工作?

关志
2023-03-14
问题内容

该应用程序正在运行,但无法识别Angular数据对象。

这是我得到的JavaScript错误:

Exception was thrown at line 1059, column 11 in ms-appx://28934b41-4dd2-4414-b9a9-
a73c11c1b743/js/angular.js
0x800a139e - JavaScript runtime error: No module: ngLocale
Exception was thrown at line 4473, column 9 in ms-appx://28934b41-4dd2-4414-b9a9-
a73c11c1b743/js/angular.js
0x800a139e - JavaScript runtime error: HierarchyRequestError
The program '[5112] WWAHost.exe' has exited with code 1 (0x1).

这是angular.js中1059行附近的函数:

return ensure(modules, name, function() {
    if (!requires) {
      throw Error('No module: ' + name);
    }

这是围绕4473行的函数:

 if (parent) {
    parent.replaceChild(newNode, oldNode);
  }

我能够解决遇到的第一个错误:

Unhandled exception at line 2031
 JavaScript runtime error: Unable to add dynamic content

通过包装所有angular.jsMSApp.execUnsafeLocalFunction

  MSApp.execUnsafeLocalFunction(function () {
          ....
      });

这些错误来自我按照Angular.js主页上的待办事项列表示例创建的测试应用程序。

怎么办?根据我参加的一个免费的Microsoft活动,“很容易将任何第三方JavaScript框架/库添加到Windows 8应用程序中!”
我可能对此并不陌生…但是我认为这并不容易!

甚至可以在Windows 8应用程序中使用Angular.js吗?


问题答案:

原因是因为Angular <!-- -->为ng-
repeat和类似的指令放置了html注释标签。不幸的是,Microsoft认为使用.innertHTML从Javascript插入这些文件是不安全的,因此是不允许的。可以在这里找到:

http://msdn.microsoft.com/zh-
CN/library/windows/apps/hh465388.aspx

它发生在jQLite的1534行:

var div = document.createElement('div');
            // Read about the NoScope elements here:
            // http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx
            div.innerHTML = '<div>&#160;</div>' + element; // IE insanity to make NoScope elements work!
            div.removeChild(div.firstChild); // remove the superfluous div

发生什么是元素

<!-- ngRepeat: item in arrayTest -->

然后当angular div.innerHTML =
…时,该元素将被删除。如果在div.removeChild处放置一个断点,您会注意到div.innerHTML没有元素。

[编辑]写完此回复后,我尝试添加

MSApp.execUnsafeLocalFunction(function () { div.innerHTML = '<div>&#160;</div>' + element });

有用!显然,您必须将所有angularjs包装在MSApp.execUnsafeLocalFunction中,然后专门包装该行。



 类似资料:
  • 问题内容: 我是Angular.js的新手,并且阅读我知道Angular没有诸如tap,doubletap等事件。我试图与Hammer.js结合使用而没有成功。 要点代码 现在我已经添加到我的html文件中 但是,当我尝试在我的html中使用它时,它不起作用。 我尝试过 没有人可以解决这个麻烦吗? 问题答案: 快去 将Hammer.js和jquery.hammer.js添加到您的解决方案中。使用J

  • 我们有一个在线商店,在三个表中存储产品详细信息: 产品(名称、描述、品牌)-总计10,000个条目 产品-变体(大小、价格、可用性)-总计80.000项 产品-属性(颜色)-总计60.000项 这给出了大约400.000项的总组合。 示例: 产品为“Nike Air Max” 变体是“尺寸36,70美元”、“尺寸37,72美元”、“尺寸38,74美元” 属性为“Color Red”和“Color

  • 我正在使用谷歌地图商店定位器实用程序库来显示商店,我想知道如何在侧边栏面板中显示所有商店,而不是固定数量的商店

  • 问题内容: 我的gopath是,跟随如下: 现在,我使用,然后变为: 这是: 那么,我应该使用什么命令?为什么没用?我的go版本是1.6.2。 问题答案: 借助Go1.6,您可以在阅读时内置供应商。这是什么意思?只有一件事要牢记: 当使用诸如或的工具时,他们首先检查依赖项是否位于中。如果是这样,请使用它。如果不是,请还原到该目录。 Go 1.6中的实际“查找路径”依次为: 话虽如此,将继续安装到您

  • 例如:“亲爱的App1用户,该应用程序已被出版商从市场上移除,以下是出版商可能取代App1的其他应用程序(或:”这是出版商打算取代App1的App2“)”。 说到测试应用程序,有没有一种方法来做应用程序的小发布,这样只有特定的帐户才能从市场上下载应用程序?

  • 据甲骨文说,, 返回一个新的完全未来,该完全未来由ForkJoinPool.common池()中运行的任务异步完成,该任务的值通过调用给定的供应商获得。 静态CompletableFuture supplyAsync(供应商-供应商,执行者-执行者)返回一个新的CompletableFuture,该新的CompletableFuture由在给定执行者中运行的任务异步完成,其值通过调用给定供应商获得