2016-11-04 64 views
0

我寫了一個指令到JustGage插件如下。justgage no id id 0 angular 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' 
       }); 
      } 
     }; 
    } 

在我的控制器I值分配給id和衡量value

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

我的HTML如下。

<just-gage></just-gage> 

然後我得到一個錯誤爲"justgage : no element with id 0"。在我的指令中,我爲模板和JustGage對象添加了相同的ID。 我該如何解決這個問題來渲染儀表?

+0

請粘貼HTML,您使用的指令。 – Sravan

+0

你應該從指令 – Sravan

+0

中刪除範圍:{ ID:'@', value:'=' }'我編輯了我的代碼。 – Shashika

回答

0

您在指令中創建新的子範圍,因此它不知道在控制器中分配的idvalue

你可以做這樣的事情:

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

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

}