gpt4 book ai didi

angularjs - 指令范围属性根据属性名称中断

转载 作者:行者123 更新时间:2023-12-04 23:04:35 24 4
gpt4 key购买 nike

我有一个非常奇怪的现象,一个指令和一个孤立的范围,范围内的属性工作或不工作取决于属性的命名。如果我使用

{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

真的有可能取决于大写字母的使用吗?这将是非常“意外”的行为。

谢谢你的帮助

沙基

最佳答案

Html 不区分大小写,因此 myAttributemyattribute根据浏览器的不同,彼此无法区分。 Angularjs 的作者做出了一个关于从 html 传递到 javascript 的设计决策,反之亦然。
ngRepeat指令将用作 ng-repeat在 View (html)中。
同样,您的指令 checkN应该用作 check-n Angular 将其识别为指令。

关于angularjs - 指令范围属性根据属性名称中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com