如何在指令中获取并运行值“ {{aaa}} / {{bbb}}”的属性?

自由风

我想用angular定义一个自定义指令。它可以基于一些自定义属性来计算路径。

HTML代码:

<div ng-controller="Ctrl">
  <input ng-model="ratio" />
  <hr/>
  Image:
  <span retina-src="{{server}}/{{originWidth}}x{{originHeight}}{{uri}}" 
        origin-width="111" origin-height="222" />
</div>

Angularjs代码:

angular.module('myapp', []).
controller('Ctrl', ['$scope',
    function Ctrl($scope) {
        $scope.ratio = 1;
        $scope.server = "http://some.com";
        $scope.uri = "/main.jpg";
        $scope.name = "abc";
    }
]).
directive('retinaSrc', ['$compile',
    function($compile) {
        return {
            restrict: 'A',
            scope: {
                originWidth: '@originWidth',
                originHeight: '@originHeight'
            },
            compile: function compile(tElement, tAttrs, transclude) {
                var realPath = tAttrs.retinaSrc;
                return {
                    post: function postLink(scope, iElement, iAttrs, controller) {
                        scope.$parent.$watch("ratio", function(o, v) {
                          scope.originWidth = scope.originWidth * scope.ratio;
                          scope.originHeight = scope.originHeight * scope.ratio;

                            console.log("realPath: " + realPath);

                            // !!! there is something wrong here
                            var value = $compile(realPath)(scope);
                            console.log(value);

                            iElement.text(value);
                        });

                    }
                };


            }
        };
    }
]);

您可以看到我的文本retina-src为:

{{server}}/{{originWidth}}x{{originHeight}}{{uri}}

但是我不知道如何评估。$compile在代码中尝试过,但是它不起作用,而是报告一些错误:

Error: [jqLite:nosel] http://errors.angularjs.org/1.2.14/jqLite/nosel
    at Error (native)

我也试过了scope.$eval(realPath),但是会报告其他错误。


现场演示:http : //jsbin.com/mufokegayuqa/3/edit

像素位

您需要$ interpolate服务来替换卷曲表达式:即{{originWidth}}。

例:

var url = $interpolate(iAttrs.retinaSrc)(scope.$parent);

注意:scope。$ parent是必需的,因为您的指令具有隔离范围。请记住将$ interpolate服务注入到指令函数中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在指令中获取和运行值“ {{aaa}} / {{bbb}}”的属性?

来自分类Dev

使用PHP,当我只知道“ aaa”时,如何从“ string1 string2 aaa-bbb string3”中获取子字符串“ aaa-bbb”?

来自分类Dev

如何使用sed查找以AAA开头但不以BBB结尾的行

来自分类Dev

如何在Perl中使用正则表达式模式(例如[aaa-bbb.com])匹配字符串

来自分类Dev

标识类似的名称,例如:“ AAA BBB CCC”和“ BBB AAA CCC”是同一个人

来自分类Dev

如果标题包含字符串'aaa','bbb'或'ccc',则替换字段{category [1}

来自分类Dev

从双中选择regexp_replace('aaa_bbb','(_。)',upper('\ 1'))

来自分类Dev

DataPower中的AAA认证错误

来自分类Dev

如何找出BBB上的哪个USB

来自分类Dev

如何在angularjs自定义指令的模板中获取属性值?

来自分类Dev

15.04版中的+ bbb和-bbb映像有什么区别?

来自分类Dev

'aaa'['toUpperCase']。apply('abc')如何工作?

来自分类Dev

DataPower中的AAA身份验证错误

来自分类Dev

如何在指令属性中设置初始值

来自分类Dev

如何在CodeAttribute中获取属性值

来自分类Dev

如何在ajax上从http://aaa-my.sharepoint.com获取数据到http://aaa.sharepoint.com

来自分类Dev

在Angular JS的指令中获取属性值

来自分类Dev

我可以在BBB上运行Grove图像吗?

来自分类Dev

向BBB的grunt文件中添加其他插件

来自分类Dev

如何在 C# 中获取类属性的属性值

来自分类Dev

AngularJs:如何获取属性类型指令的属性值

来自分类Dev

AngularJs:如何获取属性类型指令的属性值

来自分类Dev

如何在指令中显示对象的属性?

来自分类Dev

如何在指令的attrs中监视属性

来自分类Dev

如何在AngularJS指令中绑定属性?

来自分类Dev

如何在指令的attrs中监视属性

来自分类Dev

如何获取指令中模板url的html文件中定义的属性值

来自分类Dev

队列PNR返回“ AAA中没有PNR”(QueuePlaceLLSRQ)

来自分类Dev

如何在JavaScript代码中获取数据属性的值?

Related 相关文章

  1. 1

    如何在指令中获取和运行值“ {{aaa}} / {{bbb}}”的属性?

  2. 2

    使用PHP,当我只知道“ aaa”时,如何从“ string1 string2 aaa-bbb string3”中获取子字符串“ aaa-bbb”?

  3. 3

    如何使用sed查找以AAA开头但不以BBB结尾的行

  4. 4

    如何在Perl中使用正则表达式模式(例如[aaa-bbb.com])匹配字符串

  5. 5

    标识类似的名称,例如:“ AAA BBB CCC”和“ BBB AAA CCC”是同一个人

  6. 6

    如果标题包含字符串'aaa','bbb'或'ccc',则替换字段{category [1}

  7. 7

    从双中选择regexp_replace('aaa_bbb','(_。)',upper('\ 1'))

  8. 8

    DataPower中的AAA认证错误

  9. 9

    如何找出BBB上的哪个USB

  10. 10

    如何在angularjs自定义指令的模板中获取属性值?

  11. 11

    15.04版中的+ bbb和-bbb映像有什么区别?

  12. 12

    'aaa'['toUpperCase']。apply('abc')如何工作?

  13. 13

    DataPower中的AAA身份验证错误

  14. 14

    如何在指令属性中设置初始值

  15. 15

    如何在CodeAttribute中获取属性值

  16. 16

    如何在ajax上从http://aaa-my.sharepoint.com获取数据到http://aaa.sharepoint.com

  17. 17

    在Angular JS的指令中获取属性值

  18. 18

    我可以在BBB上运行Grove图像吗?

  19. 19

    向BBB的grunt文件中添加其他插件

  20. 20

    如何在 C# 中获取类属性的属性值

  21. 21

    AngularJs:如何获取属性类型指令的属性值

  22. 22

    AngularJs:如何获取属性类型指令的属性值

  23. 23

    如何在指令中显示对象的属性?

  24. 24

    如何在指令的attrs中监视属性

  25. 25

    如何在AngularJS指令中绑定属性?

  26. 26

    如何在指令的attrs中监视属性

  27. 27

    如何获取指令中模板url的html文件中定义的属性值

  28. 28

    队列PNR返回“ AAA中没有PNR”(QueuePlaceLLSRQ)

  29. 29

    如何在JavaScript代码中获取数据属性的值?

热门标签

归档