我如何将对象传递给指令?

问题描述 投票:3回答:2

我在使对象传递给我的指令时遇到问题。我相信我做得正确,但是尝试失败之后,我必须寻求帮助。我在这里错过了什么,使我无法将数组传递给指令?

HTML:

<div class="body">
   {{orderList.length}} //shows up as 18
</div>
<queue-summary orders="orderList"></queue-summary>

Javascript:

directive('queueSummary', function () {
    return {
        scope: {
            orders: '='
        },
        replace: true,
        restrict: 'E',
        templateUrl: '/partials/admin/bits/queue-summary.htm',
        link: function (scope, element, attrs) {
            console.log(scope, element, attrs); //$attrs.orders show it as the String "orderList" instead of the array
        }
    }
}).
javascript html angularjs angularjs-directive angularjs-scope
2个回答
1
投票

attrs只会显示一个属性的字符串值。为了访问传递的对象,请使用您创建的隔离绑定:

console.log(scope.orders);

2
投票

值得注意的是,您可以使用$ eval访问没有隔离范围的属性的绑定值:

scope.$eval(attrs.orders)
© www.soinside.com 2019 - 2024. All rights reserved.