2013-05-23 6 views
5

У меня есть настраиваемая директива, используемая для стандартизации ввода данных и форматирования их в соответствии с моими (несколько странными) требованиями API. Тег используется для вызова его следующим образом:Пользовательские директивы AngularJS с пробелами

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

я получаю следующее сообщение об ошибке:

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

Когда я удалить пробелы (т.е. date-label="DateOfBirth" он работает отлично.)

Как разрешить пробелы в атрибутах директивы?

директива:

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' 
    } 
    } 
}]); 

ответ

11

Вы не должны использовать @ при передаче значений атрибутов в директивах?

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

Да, это сработало. Благодаря! – jdp

+0

Действительно работает. не знал об этом !!! – vinesh

+0

работает с пробелами и/спасибо –

Смежные вопросы