У меня очень странное явление с директивой и изолированным скоупом, где атрибуты в скоупе работают или не работают в зависимости от именования атрибута. Если я использую
{check:'@check'}
он работает просто отлично и как ожидалось. Однако, если я использую:
{checkN:'@checkN'}
определенная функция никогда не назначается. Пример будет выглядеть так:
HTML:
<item ng-repeat="list_item in model.list" model="list_item" checkN="checkName()" check="checkName()" position="$index"></item>'
JavaScript
app.directive('item', function(){
return {
restrict: 'E',
replace : false,
scope:{
$index: '=position',
check: '&check',
checkN: '&checkN',
model:'='
},
template: '',
link: function(scope, element, attrs){
console.log(scope.check())
console.log(scope.checkN())
}
}
});
Затем консоль выдаст мне следующее:
The checkName function has been called [which is the return string of the function]
undefined
Неужели это зависит от использования заглавных букв? Это было бы очень "неожиданным" поведением.
Спасибо за вашу помощь
Шаки
ngBind
. Директиву можно вызвать, переведя имя регистра верблюда в регистр змеи с помощью этих специальных символов:
,-
или_
. При желании к директиве можно добавить префиксx-
илиdata-
, чтобы сделать ее совместимой с валидатором HTML. -- Раздел Страница директив Вызов директив из HTML - person Mark Rajcok   schedule 27.03.2013