2016-12-29 2 views
0

Я использую ng-bind-html, и он тянет в HTML с именами классов, но имена идентификаторов отсутствуют. Чем это вызвано?ng-bind-html не распознает имена идентификаторов

фактический пример кода:

service partial example 

    var assets = { 
     'sampleInvoice': '<div id="invoice-div"><table id="invoice-table-id" cellspacing="0" cellpadding="0" border="0"><tbody>...... 
    } 

    controller portion: 

    $scope.invoiceDetails = function(params) { 
     console.log("Here I am "); 
     var modalInstance = $uibModal.open({ 
      templateUrl: 'invoice-details-modal', 
      controller: 'invoiceDetailsCtrl', 
      windowClass: 'invoice-details-modal', 
      resolve: { 
       invoice: function resolveInvoiceTemplate($q) { 
        return $q.resolve($templateCache.get("sampleInvoice")); 
       } 
      } 
     }); 

HTML Часть

<div ng-bind-html="invoice"></div> 

Что это производит:

<div><table cellspacing="0" cellpadding="0" border="0"><tbody><tr valign="top"><td><table cellspacing="0" cellpadding="0" border="0"><tbody><tr><td class="invoice-logo-td"><div class="invoice-logo">.... 

Обратите внимание на имена классов есть, но идентификаторы ушли. Теперь я могу переключать все идентификаторы на классы как на работу, но, похоже, он также должен распознавать имена имен.

Кто-нибудь знает, почему это происходит? (Да, я ввел ngSanitize)

Заранее спасибо!

ответ

0

Снятие идентификаторов от элементов в преднамеренной санитарии. Вы можете увидеть исходный коммит, который вызвал это в v1.0.0-rc2.

Рассуждение не дано в коммит, а потом вопрос подан против angularjs о striping id's from img tags объясняет это:

причина, почему мы раздеть id и name в том, что браузеры поставить их на window

<div id="angular"> будет перезаписывать элемент window.angular. Это считается проблемой безопасности, поэтому мы этого не допускаем.

mhevery