Ho un fenomeno molto strano con una direttiva e un ambito isolato, in cui gli attributi nello scope funzionano o non funzionano a seconda della denominazione dell'attributo. Se usoGli attributi dell'ambito della direttiva si interrompono in base al nome dell'attributo
{check:'@check'}
funziona bene e come previsto. Tuttavia, se uso:
{checkN:'@checkN'}
la funzione definita non viene mai assegnata. Un esempio potrebbe apparire come:
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())
}
}
});
La consolle a questo punto mi danno la seguente:
The checkName function has been called [which is the return string of the function]
undefined
E 'davvero possibl e che dipende dall'uso delle lettere maiuscole? Questo sarebbe un comportamento molto "inaspettato".
Grazie per il vostro aiuto
schacki
"Direttive hanno nomi cammello con carter come' ngBind' La direttiva può essere invocato traducendo il nome caso cammello in caso serpente con questi caratteri speciali ':..', '-', o' _' Opzionalmente la direttiva possa essere preceduto da 'x-' o 'data-' per renderlo conforme al validatore HTML. " - [Direttiva pagina] (http://docs.angularjs.org/guide/directive) sezione "Invocare le direttive da HTML" –