在Internet Explorer中使用花括号的AngularJS数据绑定问题

9
我在这里做错了什么?我已经阅读了IE兼容性指南,但它没有提及使用{{}}标签进行数据绑定。这在其他浏览器上很好用,但在IE上失败(包括IE9)。 http://jsfiddle.net/yMgQ8/1/ HTML:
<html ng-app class="ng-app">

    <head></head>

    <body>
        <div ng-controller="Controller">
            <p>{{test}}</p>
        </div>
    </body>

</html>

JavaScript:

function Controller($scope) {
    $scope.test = "Hello world";
}

我尝试添加兼容性指南中提到的步骤,但似乎并没有解决问题,除非我漏掉了什么明显的东西!

它应该输出“Hello world”,但在IE上它输出{{test}}。

非常感谢。


1
看起来没问题。你试过在带有<!doctype html>标签的文件中jsfiddle之外尝试吗? - hyperslug
是的,我所使用的文档已设置正确的 doctype。其他 AngularJS 函数正常工作(它可以加载 JSON 文件),但当尝试使用花括号显示数据时,IE 就会失败。 - James Donnelly
<!doctype html> 对我有用,但请确保它上面没有任何注释。更多信息请参见此帖子:https://dev59.com/0Gw15IYBdhLWcg3wkMnz#7312841。 - Gloopy
我在文档顶部有<!doctype html>,之前没有任何注释。 - James Donnelly
我在MSIE 7/8中遇到了同样的问题,你最终找出了问题吗? - DrogoNevets
2个回答

3
问题似乎不是Angular,而是jsfiddle。 http://plunker.no.de/BL97Av/ 这在IE9中可以工作。
此外,如果需要IE7或IE8兼容性,则需要自行解决。

谢谢你的答复,我知道这在IE9上可以运行,但我自己就是无法让它工作。为什么这在Plunker上可以工作而在jsfiddle上却不行? - James Donnelly
似乎我的问题是因为在IE中加载JSON文件的函数无法正常工作。在提问之前我应该先测试一下,所以现在感觉有点傻!不过我会将这个答案标记为已接受的。 - James Donnelly
链接已经失效了。你能修复它并在答案中插入相关的标记/代码吗? - camden_kid

2

供以后参考:给html元素添加id属性解决了我的问题。在你的情况下,这意味着将代码更改为:

<html ng-app id="ng-app" class="ng-app">

请记住,我最初提出这个问题已经将近两年半了。自那时以来,AngularJS发生了很大的变化。 - James Donnelly
1
我知道,但我花了一个多小时试图弄清楚为什么它在IE 11上不起作用,出乎意料的是这个修改起了作用,所以这个回应可能对将来的某个人有用。 - downhand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接