Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 指令范围属性根据属性名称而中断大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常奇怪的现象,指令和隔离范围,其中范围中的属性工作或不起作用取决于属性的命名.如果我使用

{check:'@check'}@H_673_8@ 
 

它工作正常,如预期的那样.但是,如果我使用:

{checkN:'@checkN'}@H_673_8@ 
 

定义的函数永远不会被分配.一个例子如下:

HTML:

<item ng-repeat="list_item in model.list" model="list_item" checkN="checkName()" check="checkName()" position="$index"></item>'@H_673_8@ 
 

使用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())          
      }
    }
});@H_673_8@ 
 

然后控制台会给我以内容

The checkName function has been called [which is the return String of the function]
undefined@H_673_8@ 
 

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

谢谢你的帮助

schacki

解决方法

Html不区分大小写,因此myAttribute和Myattribute根据浏览器的不同而无法区分. Angularjs的作者做出了一个关于从html传递到javascript的设计决策,反之亦然.

ngRepeat指令将在视图(html)中用作ng-repeat.同样,您的指令checkN应该用作angular的check-n以将其识别为指令.

大佬总结

以上是大佬教程为你收集整理的angularjs – 指令范围属性根据属性名称而中断全部内容,希望文章能够帮你解决angularjs – 指令范围属性根据属性名称而中断所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。