我有一个很奇怪的现象,有一个指令和一个隔离的作用域,其中作用域中的属性工作或不工作,具体取决于属性的命名。如果我使用指令作用域属性根据属性名称中断
{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
这是真的possibl这取决于大写字母的用法吗?这将是非常“意外”的行为。
感谢您的帮助
schacki
“指令具有骆驼名称,例如'ngBind',可以通过将骆驼名称转换为具有特殊字符':','''或'_'的蛇情况来调用该指令。以'x-'或'data-'为前缀,以使其符合HTML验证器。“ - [指令页面](http://docs.angularjs.org/guide/directive)“从HTML调用指令”部分 – 2013-03-27 15:19:51