gpt4 book ai didi

javascript - 在 angularjs 中的指令创建的 poSTLink 中找不到元素

转载 作者:行者123 更新时间:2023-11-30 13:06:04 26 4
gpt4 key购买 nike

我正在尝试为 JustGauge 创建指令在 AngularJS 中。我的 html View 是这样的:

        <div id="guageContainer" class="row" ng-controller="guageCtrl">
<gauge ng-repeat="ind in indicators" model="ind"></gauge>
</div>

我的指令是:

angular.module("pgHome", [])
.directive("gauge", function ($compile) {
return {
restrict: "E",
scope: { model: "=model" },
compile: function (tElement, tAttrs, transclude) {
tElement.append('<div id="{{model.Name}}"></div>');
return {
post: function (scope, iElement, iAttrs, controller) {
console.log(scope.model.Name);
console.log($("#" + scope.model.Name).length);
var g = new JustGage({
id: scope.model.Name,
value: 348,
min: 120,
max: 400,
title: "test",
label: ""
});
}
};
}
};
});

当我加载包含此指令的页面时,JustGauge 引发错误,指出它找不到具有相应 ID 的元素。只是提一下,第一个 console.log 运行良好,但第二个 console.log 返回 0。而且我是 angularjs 的新手,我无法解决这个问题!

最佳答案

将 JustGage() 调用包装在 $timeout 中:

.directive("gauge", function ($compile, $timeout) {
...
$timeout(function() {
var g = new JustGage({...});
});

这让浏览器有机会呈现您在编译函数中添加的额外 HTML。然后插件可以找到新添加的div

关于javascript - 在 angularjs 中的指令创建的 poSTLink 中找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15660940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com