使用AngularJS for Windows Store App“无法添加动态内容”,但它确实有效

时间:2013-04-03 16:20:16

标签: windows-8 angularjs

我正在使用AngularJS创建一个Windows应用商店应用(或城域应用,或者他们称之为的任何内容)。

我解决了Javascript RunTime错误“无法添加动态内容”导致应用程序崩溃(请参阅here),一切顺利,直到我开始使用指令(undestand angular.module.directive)。

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

我应该忽略错误(我不喜欢这样),我可以对此做些什么吗?

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

谢谢,

的index.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>

app.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

2 个答案:

答案 0 :(得分:5)

这是窗口商店应用的安全性。 您可以使用以下script修复此问题。

答案 1 :(得分:3)

I've solved using this plugin cordova-plugin-winstore-jscompat on github. By Microsoft Visual Studio, open config.xml, go to plugin, custom, select git, and paste this url https://github.com/vjrantal/cordova-plugin-winstore-jscompat.git or with linux/unix run command cordova plugin add (git url above)