2013-02-27 23 views
7

câu hỏi nhanh về AngularJS ng-bao gồm nơi partials có HTML5 cấu trúc nút ví dụ: tiêu đề, nav, footer ...IE8 phát hành: AngularJS ng-bao gồm - partials với cấu trúc nút HTML5

Trong phần đầu của tôi, tôi có tất cả các công cụ tuyệt vời để làm cho Angular hoạt động tốt trong Internet Explorer 8 trở xuống.

Tất cả công việc ng-xem và ng-bao gồm như dự định.

<!--[if lt IE 9]> 
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

<!-- Internet Explorer AngularJS element creation --> 
<!--[if lte IE 8]> 
    <script> 
     document.createElement('ng-include'); 
     document.createElement('ng-pluralize'); 
     document.createElement('ng-view'); 
     document.createElement('ng:include'); 
     document.createElement('ng:pluralize'); 
     document.createElement('ng:view'); 
    </script> 
    <script src="http://cdnjs.cloudfare.com/ajax/libs/json3/3.2.4/json3.min.js"></script> 
<![endif]--> 

Sự cố là khi một phần có nút HTML5 trong đó.

Giả định: một phần được gọi là tiêu đề trong partials.

<ng-include src="'partials/header.partial.html'"></ng-include> 

Ví dụ 1 (nguồn header.partial.html - không hiển thị trong IE8)

<header> 
    <h1>logo</h1> 
</header> 

Ví dụ 2 (nguồn header.partial.html - hiển thị trong IE8)

<div> 
    <h1>logo</h1> 
</div> 

Tôi đã bao gồm các kịch bản yêu cầu từ góc cạnh cũng như html5 shim.

Nếu tôi di chuyển nội dung của một phần vào tệp gốc, mọi thứ đều tốt.

Suy nghĩ?

Trả lời

4

này dường như có liên quan đến hành #1381. Tóm lại, phương pháp nhân bản trong jqlite đặt một không gian tên trống trên thẻ nó không hiểu do đó các thẻ html5 hiển thị như thế này <:header> thay vì <header>. Điều này có thể được giải quyết nếu bạn sử dụng phiên bản đầy đủ của jquery. Hoặc bạn có thể vá góc cạnh (xem vấn đề ở trên). Có vẻ như vấn đề là loại chết trên github và ở đây dựa trên tuổi của bài đăng này. Ngoài ra còn có một vấn đề liên quan trên các nhóm google (Problems with jQuery and ng:include in Internet Explorer).

+2

Đây là lỗi được xác nhận trong góc 1.2. Xem vấn đề này https://github.com/angular/angular.js/issues/4020 Giải thích ngắn: Nếu bạn bao gồm jQuery trước khi các thẻ html5 angularjs sẽ hoạt động, nhưng chỉ thị angularjs và chỉ thị tùy chỉnh sẽ không hoạt động như thẻ. Cách giải quyết hiện tại là sử dụng các chỉ thị làm thuộc tính trên các thẻ html hợp lệ. – jenso

0

Đã được bảo hiểm, giờ đây AngularJS dường như đã giảm hỗ trợ IE8 là 1,3, họ cũng đã xóa một phần tài liệu của họ. Quá xấu =/

+1

Lưu ý rằng bạn vẫn có thể xem các phiên bản tài liệu cũ hơn - có bộ chọn phiên bản ở góc trên bên trái của các trang tài liệu, liên kết trực tiếp: https://code.angularjs.org/1.2.28/docs/guide/ I E – smithml

Các vấn đề liên quan