2014-12-09 2 views
0

각도가 IE8 버전 1.3을 지원하지 않는다는 것을 알고 있지만 단방향 바인딩의 도입으로 인해 내 페이지를 손상시키는 순간이 유일한 것입니다. 나는 성공적으로 버전 1.2.9를 IE8 용으로 만로드했고 다른 모든 브라우저는 1.3을 사용하지만 현재 내가 직면하고있는 문제는 편도 바인딩 "::"이 여전히 HTML에 쓰여지거나 표시되고 있다는 것입니다. 그래서 내가 알아 내려고하는 것은 검색을 실행하고 HTML을 통해 함수를 대체하여 각도 실행 전에 IE8에서 "::"을 제거 할 수있는 방법입니다. 내가 그들에게하고 싶은 무엇각도 1.3 단방향 바인딩 IE8 지원

{{ ::day.Stuff }} 

{{ day.Stuff }} 

답변

0

하지 전에 각 실행과 같이이 모든 :: 바인딩을 대체하는 솔루션이 될,하지만 난하지 않을 것이라고 :

현재 바인딩는 다음과 같다 그 문제에 관해서는 그것이 효율적 일 것이라고 생각하지 마십시오. IE8 지원이 매우 중요하다면,이 인기있는 바인드 한 번 라이브러리를 사용하는 것이 좋습니다 : https://github.com/Pasvaz/bindonce. 나는 1.3이 나오기 전에 그것을 사용했고 그것은 나에게 잘 복무했다.

0

지시어에 regex를 사용하면 실제로 간단하게 처리 할 수 ​​있습니다. 터미널을 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>