4

我正在使用 AngularJS 创建一个 Windows 应用商店应用程序(或 Metro 应用程序,或其他任何名称)。

我解决了导致应用程序崩溃的 Javascript 运行时错误“无法添加动态内容”(请参阅​​此处),并且一切都很好,直到我开始使用指令(无法理解 angular.module.directive)。

现在,我有一个“无法添加动态内容”,但在控制台日志中。请注意,应用程序不会崩溃,事实上,应用程序按预期工作!

我应该忽略这个错误(我不喜欢那个),我能做些什么吗?

一个“时钟”应用程序的代码来说明:该应用程序确实显示了正确的时间,每秒格式化和递增。DOM 是我所期望的。

谢谢,

索引.html:

<!doctype html>
<html lang="en" ng-app="phonecat">
<head>
<meta charset="utf-8">
<title>Google Phone Gallery</title>
<link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="css/bootstrap.css">

<script src="lib/jquery-1.8.2-win8-1.0.min.js"></script>
<script type="text/javascript">
    jQuery.isUnsafe = true;
</script>
<script src="lib/angular/angular.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/filters.js"></script>
<script src="js/services.js"></script>
<script src="lib/angular/angular-resource.js"></script>
</head>

应用程序.js

angular.module('phonecat', ['phonecatFilters', 'phonecatServices']).config(['$routeProvider', function($routeProvider) {
  $routeProvider.
      when('/phones', {templateUrl: 'partials/phone-list.html',controller: PhoneListCtrl}).
      otherwise({redirectTo: '/phones'});
  }])
.directive('myCurrentTime', function($timeout, dateFilter) {
    return {
        restrict: 'E',
        replace: true,
        template: '<div> Current time is: <span>{{time}}</span></div>',
        link: function (scope, element, attrs) {
            var timeoutId;

            function updateTime() {
               scope.time = dateFilter(new Date(), 'M/d/yy h:mm:ss a');
            }

            function updateLater() {
                timeoutId = $timeout(function () {
                    updateTime();
                    updateLater();
                }, 1000);
            }

            element.bind('$destroy', function () {
                $timeout.cancel(timeoutId);
            });

            updateLater();
        }
    }
});

错误:

HTML1701: Unable to add dynamic content '<my-current-time></my-current-time>
'. A script attempted to inject dynamic content or elements previously modified dynamically that might be unsafe. For example, using the innerHTML property to add script or malformed HTML will generate this exception. Use the toStaticHTML method to filter dynamic content or explicitly create elements and attributes with a method such as createElement. For more information, see http://go.microsoft.com/fwlink/?LinkID=247104.
File: index.html
4

2 回答 2

5

这是窗口商店应用程序的安全性。您可以使用以下脚本修复它。

于 2015-04-06T07:45:17.793 回答
3

我已经在 github 上使用这个插件cordova-plugin-winstore-jscompat解决了。通过 Microsoft Visual Studio,打开 config.xml,转到插件,自定义,选择 git,然后粘贴此 urlhttps://github.com/vjrantal/cordova-plugin-winstore-jscompat.git或使用 linux/unix 运行命令cordova plugin add (git url above)

于 2016-04-07T10:53:50.183 回答