我有一个非常奇怪的现象,即指令和隔离范围,范围内的属性工作或不工作取决于属性的命名。如果我使用
{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
真的有可能取决于大写字母的使用吗?这将是非常“意外”的行为。
谢谢你的帮助
沙基