【发布时间】:2023-04-07 19:34:01
【问题描述】:
我正在为 AngularJs 开发一个自定义指令,该指令具有基于我编写的 Jquery 插件的图像旋转器,which can be seen here
这是我的指令
.directive('imageRotator', function () {
return {
restrict: 'A',
link: function ($scope, $element, $attr) {
console.log('Before Function');
$element.j360();
console.log('After Function');
}
};
});
现在,当我在演示中对一系列图像进行硬编码时,该指令有效,但是当我尝试通过组合和 ng-repeat 使图像动态化时,插件不起作用。我读过here,关于在使用动态html时使用$compile,如下所示:
<div class="product" image-Rotator>
<img ng-repeat="img in page.imgs" class="child" ng-src="img/{{product.sku}}/{{img}}.png">
</div>
但是当我使用$compile 时,我的控制台出现错误:
TypeError: undefined is not a function
at link (http://0.0.0.0:8000/js/controllers.js:48:14)
at nodeLinkFn (http://0.0.0.0:8000/js/angular/angular.js:6220:13)
at compositeLinkFn (http://0.0.0.0:8000/js/angular/angular.js:5630:15)
at compositeLinkFn (http://0.0.0.0:8000/js/angular/angular.js:5633:13)
at publicLinkFn (http://0.0.0.0:8000/js/angular/angular.js:5535:30)
at boundTranscludeFn (http://0.0.0.0:8000/js/angular/angular.js:5649:21)
at controllersBoundTransclude [as $transclude] (http://0.0.0.0:8000/js/angular/angular.js:6241:18)
at ngDirective.link (http://0.0.0.0:8000/js/angular/angular.js:19898:16)
at nodeLinkFn (http://0.0.0.0:8000/js/angular/angular.js:6220:13)
at compositeLinkFn (http://0.0.0.0:8000/js/angular/angular.js:5630:15) <div class="product" image-rotator="">
这可能有点让我头疼,因为我对 Angular 的了解不是很好,所以我不确定什么是制作指令的正确方法,尤其是使用动态数据。
关于我需要做什么才能使它与动态图像一起使用有什么想法吗?任何帮助或想法表示赞赏。
【问题讨论】:
-
你能用你的指令做一个小提琴吗?这将使我们更容易提供帮助。
-
现在正在处理,等一下
-
添加了一个plunked
-
this 是预期的结果吗?如果是这样,我可以为它写一个答案。
-
是的!请将此添加到答案中,我将其标记为正确
标签: javascript jquery angularjs