2014-12-09 3 views
0

Я знаю, что угловой остановил поддержку IE8 в версии 1.3, но с введением односторонней привязки это единственное, что на данный момент, похоже, нарушает мою страницу. Я успешно загрузил версию 1.2.9 только для IE8, и каждый браузер использует 1.3, но проблема, с которой я сейчас сталкиваюсь, заключается в том, что односторонние привязки «::» все еще записываются/отображаются в html. Итак, что я пытаюсь выяснить, так это способ, которым я могу запустить функцию поиска и замены над html, чтобы удалить «::» в IE8 до угловых запусков?Угловая 1,3 поддержка односторонней привязки IE8

Текущие привязок выглядеть следующим образом:

{{ ::day.Stuff }} 

То, что я хотел бы им выглядеть перед угловыми пробегов

{{ day.Stuff }} 

ответ

0

Не то, чтобы это не было бы решение заменить каждый :: связывания, но я не думаю, что это было бы эффективным или красивым в этом отношении. Если поддержка IE8 имеет решающее значение для вас, я бы предложил использовать эту очень популярную библиотеку bind сразу: https://github.com/Pasvaz/bindonce. Я использовал его до появления 1.3, и он хорошо меня обслужил.

0

вы можете использовать регулярное выражение в директиве, чтобы сделать это довольно просто на самом деле. Убедитесь, что терминал установлен в 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) 

}]);

в HTML

<body ng-controller="demoController"> 
    <div regex-directive>{{ ::day.Stuff }}</div> 
</body> 
Смежные вопросы