0

J'ai une directive personnalisée "customDir" avec un attribut "headerwidth". Le code suivant fonctionne parfaitement en chrome, safari & firefox. Mais ne pas obtenir la valeur de l'attribut dans IE.Ne pas obtenir de valeur d'attribut dans IE 11

HTML

<custom-dir headerwidth="headerWidth" gfilter="__filter" pidx="$parent.$index" cidx="$index" config="gantt_config" v4data="v4.gantt_data"></custom-dir> 

JS code

.controller("myCtrl", function($scope) { 
    $scope.headerWidth = 'test'; 
}) 
.directive('customDir', function ($compile) { 
    return { 
     restrict: 'EA', 
     scope: { 
      headerwidth: "=", 
      gfilter: "=", 
      pidx: "=", 
      cidx: "=", 
      config: "=", 
      v4data: "=" 
     }, 
     link: function (scope, element, attrs) { 

      scope.$watch('gfilter', function() { 
       renderTemplate(); 
      }, true); 

      let getX = function (y1) { 
       return scope.headerwidth * (y1 - scope.gfilter.fromYear) + (3 * (y1 - scope.gfilter.fromYear)); 
      }; 

      let getWidth = function (y1, y2) { 
       return ((scope.headerwidth * (y1 - y2)) + 84 + 34); 
      }; 

      var currentElement = element; 
      let renderTemplate = function() { 
       let rectLine = ''; 
       if (scope.v4data[scope.config.sY_field] && scope.v4data[scope.config.eY_field]) { 
        let __X = getX(scope.v4data[scope.config.sY_field]['year']); 
        let __W = getWidth(scope.v4data[scope.config.eY_field]['year'], scope.v4data[scope.config.sY_field]['year']); 

        rectLine = '<rect x="' + __X + '" y="6" width="' + __W + '" height="8" fill="#cacaca" />'; 
       } 

       let html = '<svg xmlns="http://www.w3.org/2000/svg" height="18px" width="100%">\ 
        <g id="g_'+ scope.pidx + '_' + scope.cidx + '">\ 
         '+ rectLine + '\ 
        </g>\ 
       </svg>'; 

       var replacementElement = $compile(html)(scope); 
       currentElement.replaceWith(replacementElement); 
       currentElement = replacementElement; 
      }; 

      renderTemplate(); 
     } 
    }; 
}) 
+0

Vos jeux de contrôleur 'headerWidth'. Votre directive définit 'headerwidth'. Ce sont des noms différents. –

+0

@MikeMcCaughan J'ai mis à jour le code .. Veuillez cocher une autre fois. Le code ci-dessus fonctionne bien en chrome, safari et mozilla bt je ne suis confronté à problème que dans IE 11 –

+0

@MikeMcCaughan pouvez-vous vérifier l'exemple à ma réponse avec votre IE11 local? J'ai confirmé que ça fonctionnait mais OP a dit que ça ne fonctionnait pas ce qui semble être câblé. – Pengyy

Répondre

0
<custom-dir headerwidth="{{headerWidth}}" gfilter="__filter" pidx="$parent.$index" cidx="$index" config="gantt_config" v4data="v4.gantt_data"></custom-dir>