2016-11-04 4 views
0

Я написал директиву для JustGage плагина следующим образом.justgage no element с id 0 угловой js

function justGage() { 
     return { 
      restrict: 'E', 
      replace: true, 
      scope: { 
       id: '@', 
       value: '=' 
      }, 
      template: '<div id="{{id}}" class="200x160px" style="margin-top: 5vh"></div>', 
      link: function ($scope, $element) { 

       var g = new JustGage({ 
        id: $scope.id, 
        value: $scope.value, 
        min: 0, 
        max: 100, 
        minLabelMinFontSize: 15, 
        maxLabelMinFontSize: 15, 
        valueMinFontSize: 40, 
        valueFontColor: '#ededed' 
       }); 
      } 
     }; 
    } 

В моем контроллере я присваиваю значения id и калибровочные value

$element.id = "gauge"; 
$element.value = $scope.data; 

Моего HTML выглядит следующим образом.

<just-gage></just-gage> 

Затем я получаю сообщение об ошибке "justgage : no element with id 0". В моей директиве я добавил один и тот же идентификатор как для шаблона, так и для объекта JustGage. Как я могу решить эту проблему, чтобы отобразить датчик?

+0

пожалуйста вставьте HTML, где вы использовали директиву. – Sravan

+0

вы должны удалить, 'scope: { id: '@', value: '=' }' from директива – Sravan

+0

Я отредактировал мой код. – Shashika

ответ

0

В своей директиве вы создаете новый дочерний объект, поэтому он не знает о id и value, которые вы назначили в контроллере.

Вы можете сделать что-то вроде этого:

link: function ($scope, $element, $attrs) { 

    var g = new JustGage({ 
     id: $attrs.id, 
     value: $attrs.value, 
     // .. 
    }); 

}