2013-05-23 19 views
5

Mam niestandardową dyrektywę używaną do standaryzacji danych wejściowych daty i formatowania ich zgodnie z moimi (nieco dziwnymi) wymaganiami API. Znacznik używany do jej wywołania jest następujący:Argument AngularJS Custom z argumentami ze spacjami

<date-input date-id="birthDate" date-label="Date Of Birth" ng-model="client.dateOfBirth"></date-input> 

Dostaję następujący błąd:

Syntax Error: Token 'Of' is an unexpected token at column 6 of the expression [Date Of Birth] starting at [Of Birth]. 

Kiedy usunąć spacje (tj date-label="DateOfBirth" to działa dobrze).

Jak mogę zezwolić na spacje w atrybutach dyrektywy?

dyrektywy:

directives.directive('dateInput', [function() { 
    var link = function(scope, element, attrs, model) { 
    scope.dateLabel = attrs.dateLabel; 
    scope.dateId = attrs.dateId; 

    var dateObjectPre = moment(scope.dateObject); 
    scope.dateObjectPre = dateObjectPre.format('MMDDYYYY'); 

    scope.update = function() { 
     var dateObject; 
     if(angular.isDefined(scope.dateObjectPre)) { 
     dateObject = moment(scope.dateObjectPre, 'MMDDYYYY'); 
     } 

     if (dateObject && dateObject.isValid()) { 
     scope.dateObject = dateObject.format('YYYY-MM-DD'); 
     } 
     else { 
     scope.dateObject = ''; 
     } 
    }; 
    }; 

    return { 
    restrict: 'E', 
    link: link, 
    templateUrl: '/views/directives/dateInput.html', 
    replace: true, 
    scope: { 
     'dateLabel': '=dateLabel', 
     'dateObject': '=ngModel', 
     'dateShow': '=dateShow', 
     'dateRequired': '=dateRequired', 
     'dateId': '=dateId' 
    } 
    } 
}]); 

Odpowiedz

11

nie należy używać @ przy przejściu wartości atrybutów do dyrektyw?

scope: { 
     'dateLabel': '@dateLabel' 
} 
+0

Tak, zadziałało. Dzięki! – jdp

+0

Naprawdę działa. nie był tego świadomy !!! – vinesh

+0

działa ze spacjami i/Dzięki –

Powiązane problemy