AngularJS数据绑定/模板在IE 8中不起作用

时间:2012-11-19 23:51:02

标签: internet-explorer angularjs

更新

所以,看来这是IE和javascript更新title元素的问题。考虑到这一点,有谁知道如何解决这个问题?截至目前,我没有接受这个问题的答案,所以不妨深究这个问题。

原始问题:

我最近一直在深入研究AngularJS并热爱它。然而,我正在遇到一个重大问题。数据绑定/模板在IE 8中不起作用。我在我的$scope.pageTitle中设置了一个名为MainController的变量,它适用于Chrome和Firefox。在IE 8中,它在标题栏中显示为{{pageTitle}},我找不到任何有关如何解决此问题的信息。它让我疯狂。任何人都可以帮助或指向我可能已经看过的资源吗?如果真的需要我可以作为一个例子。

这是index.html的顶部:

<!DOCTYPE html>
<html lang="en" ng-app="App" ng-controller="MainController">
    <head>
        <!-- Vendor JS Libraries -->
        <script type="text/javascript" src="lib/angular.js"></script>
        <script type="text/javascript" src="lib/underscore-min.js"></script>
        <script type="text/javascript" src="lib/jquery.js"></script>
        <!-- Bootstrap JS & CSS -->
        <script type="text/javascript" src="lib/bootstrap/js/bootstrap.js"></script>
        <link rel="stylesheet" type="text/css" href="lib/bootstrap/css/bootstrap.css">
        <!-- Lightbox  JS & CSS-->
        <script type="text/javascript" src="lib/lightbox/js/lightbox.js"></script>
        <link rel="stylesheet" type="text/css" href="lib/lightbox/css/lightbox.css">
        <!-- Application resources -->
        <script src="static/app.js"></script>
        <link rel="stylesheet" type="text/css" href="static/app.css">

        <title>{{pageTitle}} &ndash; Site Name</title>
    </head>

和我的app.js

//AngularJS stuff
angular.module('App', []).
    config(function($routeProvider)
    {
        $routeProvider.
            when('/home', {templateUrl:'templates/home.html', controller:HomeController}).
            otherwise({redirectTo:'/home'})
    });

function MainController($scope){
    $scope.pageTitle = 'Default';

    $scope.setPageTitle = function(pageTitle){
        $scope.pageTitle = pageTitle;
    }
}

function HomeController($scope){
    $scope.setPageTitle('Home');
}

1 个答案:

答案 0 :(得分:2)

以为我会以评论的形式发布和回答。这似乎是IE的问题,并在Javascript中修改标题标记。我通过使用IE条件

解决了这个问题
<!--[if !IE]> -->
<title>{{pageTitle}} &ndash; Site Title</title>
<!-- <![endif]-->

<!--[if IE]>
<title>Site Title</title>
<![endif]-->

不理想,但它有效。