【问题标题】:justgage no element with id 0 angular jsjustgage 没有 id 为 0 角度 js 的元素
【发布时间】:2016-11-04 11:28:56
【问题描述】:

我给JustGage插件写了一个指令如下。

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 对象添加了相同的 id。 我该如何解决这个问题来渲染仪表?

【问题讨论】:

  • 请粘贴您使用指令的 html。
  • 你应该从指令中删除 scope: { id: '@', value: '=' }
  • 我编辑了我的代码。
  • 从指令中删除范围并检查。
  • 删除范围后。我收到此错误 * justgage: 请确保将现有元素 id 或 parentNode 传递给构造函数。

标签: javascript angularjs justgage


【解决方案1】:

您在指令中创建了一个新的子范围,因此它不知道您在控制器中分配的 idvalue

你可以这样做:

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

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

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2020-10-12
    • 1970-01-01
    • 2020-09-20
    • 2018-12-02
    • 2016-07-17
    • 1970-01-01
    相关资源
    最近更新 更多