angularjs – 从指令模板调用服务方法
发布时间:2020-12-17 08:46:22 所属栏目:安全 来源:网络整理
导读:假设我有一个指令: component img ng-src='{{something}}' //component 定义为: app.directive("component",function() { return { scope: {},restrict: 'E',transclude: true,template: "a href='' ng-click='MyService.doThings()' ng-transclude/a" }})
假设我有一个指令:
<component> <img ng-src='{{something}}' /> </component> 定义为: app.directive("component",function() { return { scope: {},restrict: 'E',transclude: true,template: "<a href='' ng-click='MyService.doThings()' ng-transclude></a>" } }); 尽管我付出了很多努力,但我还是不明白如何完成两项任务: >如何访问内部图像源路径? 更新解决方案: app.directive("component",function(LightboxService) { return { restrict: 'E',replace: true,template: "<a href='' ng-click='lb()' ng-transclude></a>",link: function (scope,element,attrs) { scope.lb = function () { var src = $(element).find("img").attr("src"); LightboxService.show(src); } } } });
>您可以通过将源路径绑定到控制器作用域或使用属性的链接方法来访问源路径.
>您无法从模板访问服务.您应该将服务注入控制器并在$scope中定义一个函数以从模板中调用. 检查以下指令: app.directive("component",function() { return { scope: { ngSrc: "@",//Text Binding },controller: function($scope,MyService) { $scope.doThings = function() { MyService.doThings(); } },template: "<a href='{{ng-src}}' ng-click='doThings' ng-transclude></a>" } }); 您可以在此处了解有关具有隔离范围的指令的更多信息 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- angular – Uncaught(in promise):错误:模板解
- scala – 如何将数组[Row]转换为DataFrame
- tensorflow 升级到1.9-rc0,tensorboard 报错:Ty
- AngularJS 通过 $location 获取与修改当前页面UR
- scala – 如何使用Shapeless编写递归多态函数
- 基于BootStrap Metronic开发框架经验小结【七】数
- scala – sbt 0.12.4 – 有x特征警告;重新运行-f
- Angularjs表格单元格迭代
- 【WebService学习过程记录(三)】XFire开发Web Se
- ConnectString中enlist设置的含义
热点阅读