Angular 1.3单向绑定IE8支持

时间:2014-12-09 16:48:14

标签: javascript jquery html angularjs internet-explorer-8

我知道angular已经停止支持版本1.3中的IE8,但是随着单向绑定的引入,它是目前唯一似乎打破了我的页面的东西。我已经成功地为IE8加载了1.2.9版,并且让其他所有浏览器都使用1.3,但我现在面临的问题是单向绑定“::”仍然在html中写入/显示出来。所以我想弄清楚的是,我可以在html上运行搜索和替换函数,以便在角度运行之前删除IE8中的“::”?

当前绑定看起来像:

{{ ::day.Stuff }}

我希望他们在角度运行之前看起来像

{{ day.Stuff }}

3 个答案:

答案 0 :(得分:2)

这是一个支持IE8的Angular 1.3版本: https://github.com/fergaldoyle/angular.js-ie8-builds

因此,您不必为不同的浏览器加载不同版本的Angular。

答案 1 :(得分:0)

并不是说它不是一个替换每个::绑定的解决方案,但我不认为它会是一个有效的或非常好的。如果IE8支持对您至关重要,我建议使用这个非常流行的一次绑定库:https://github.com/Pasvaz/bindonce。我已经在1.3出现之前使用过它,它很适合我。

答案 2 :(得分:0)

你可以在指令中使用regex实际上非常简单。确保将terminal设置为true,否则会返回错误。

angular.module('fixme').directive('regexDirective', function ($compile) {
  return {
    restrict: 'AE',
    terminal:true,
    link: function(scope, element, attr)  {
        var dirty = element[0].innerHTML;
        var str = dirty.replace(/[::]/g, "");
        var ele = $compile('<div>'+str+'</div>')(scope);
        element.replaceWith(ele);
    }
}

})

在控制器中。

angular.module('fixme', []).controller('demoController', ['$scope', function($scope) {
    $scope.day = {Stuff: 'boring'}
    //console.log($scope.day.Stuff)

}]);

in html

<body ng-controller="demoController">
   <div regex-directive>{{ ::day.Stuff }}</div>
</body>