angularjs - 如何将数组传递到指令而不将其转换为字符串?

标签 angularjs angularjs-directive

对,所以我刚刚开始了解指令,它们看起来非常棒。但我遇到了一个问题:

我需要将图像数组传递到指令中,以便我可以按某些标准过滤它们。这是我调用该指令的 html:

<img cover="{{challenge.images}}">

这是我的指令:

myproject.directive('cover', function() {
    return {
        link: function ($scope, element, attrs) {
            console.debug("attrs.cover", Array(attrs.cover));
        }
    };
});

输出是一个字符串。有没有办法防止 attr 变成字符串?

最佳答案

我在这里假设您不想创建隔离范围,因此:

myproject.directive('cover', function($parse) {
    return {
        link: function ($scope, element, attrs) {

            var covers = $parse(attrs.cover)($scope);
            console.debug("attrs.cover", covers);
        }
    };
});

然后像这样使用指令:

<img cover="challenge.images">

关于angularjs - 如何将数组传递到指令而不将其转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16221279/

相关文章:

javascript - 如何让 ng-show 在 ng-repeat 中在该范围外声明的变量上工作?

javascript - 当指令 Controller 使用 Angular 读取它时,指令链接中的范围变量不会更新

javascript - 从属性指令中观察元素的 ngModel

javascript - 如何在 Angular 中制作自定义指令以使用谷歌地图计算距离

javascript - 仅通过引用绑定(bind)到服务属性?

javascript - 从不同的文件加载 Angular Controller 而不是 1

javascript - 在 angularjs 中添加非作用域变量的监视

angularjs - 有条件选择指令

javascript - 请解释 AngularJs 调试中的 ng-click 行为

javascript - 如何在按钮单击时显示 html 内容,而不是使用 angularjs 创建像向导一样的新选项卡?