3 Stimmen

Wie übergebe ich ein Objekt an eine Direktive?

Ich habe Probleme, ein Objekt an meine Direktive weiterzugeben. Ich glaube, ich habe alles richtig gemacht, aber nach vielen fehlgeschlagenen Versuchen muss ich um Hilfe bitten. Was habe ich hier übersehen, dass mich daran hindert, ein Array an meine Direktive weiterzugeben?

HTML:

   {{orderList.length}} //zeigt 18 an

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 zeigt es als String "orderList" an, anstatt als Array
        }
    }
}).

2voto

Jeff Dalley Punkte 1251

Es ist erwähnenswert, dass Sie auf den gebundenen Wert eines Attributes zugreifen können, für das Sie keinen isolierten Bereich haben, mit $eval:

scope.$eval(attrs.orders)

1voto

Dan Punkte 54881

attrs zeigt Ihnen nur den Zeichenkettenwert eines Attributs an. Um auf das übergebene Objekt zuzugreifen, verwenden Sie das von Ihnen erstellte Isolierungsbinding:

console.log(scope.orders);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X