草庐IT

ACC指令

全部标签

javascript - AngularJS 中多属性指令的编译和链接顺序?

假设我有两个名为myFoo和myBar的属性指令。这些指令是用restrict:'A'定义的。然后我有一个元素编译/链接函数的调用顺序是什么?my-foo的编译总是在my-bar的编译之前调用吗? 最佳答案 除了@valepu的回答之外,这里还有对DDO(指令定义对象)的priority属性的描述:TL;DR默认的priority是0,如果你想改变元素的编译顺序,你必须增加元素的优先级。WhentherearemultipledirectivesdefinedonasingleDOMelement,sometimesitisnece

javascript - 如何在指令中 $watch 多个内插属性?

我不明白如何在链接函数中同时监视多个属性,所以我创建了一个包含所有参数的对象并监视它。但是我注意到链接函数中的属性是一个字符串而不是一个对象,所以我使用的是angular.fromJson(val)。AlltheexampleIfoundjustuseoneparameter您能解释一下如何监视多个属性吗?谢谢编辑:我不能使用attrs参数,因为我需要绑定(bind)属性——即,它们需要插值。例如我认为我必须使用$watchlink:function(scope,element,attrs){scope.$watch('info',function(val){//ifinfoisand

javascript - 选择的 Angular 指令不会更新

我已经按照这个很棒的教程(link)学习了Chosen和Angular(代码几乎相同)这是我的指令:app.angularModule.directive('chosen',function(){varlinker=function(scope,element,attrs){varlist=attrs['chosen'];scope.$watch(list,function(){element.trigger('chosen:updated');});element.chosen({width:'350px'});};return{restrict:'A',link:linker};}

javascript - AngularJS - $编译一个带有对象作为属性参数的指令

当我使用$compile创建和绑定(bind)一个指令时,我怎样才能同时添加一个变量作为属性?变量是一个对象。vardata={name:'Fred'};vardirCode='';varel=$compile(dirCode)($scope);$element.append(el);myDirective会期望:...scope:{record:'='},...我试过`vardirCode='';`相反。 最佳答案 这很简单,只需创建新范围并在其上设置数据属性即可。angular.module('app',[]);angular.

javascript - 指令中的 $watch 函数未在 Angular JS 中触发

我是angularjs的新手,一直在到处寻找它为什么不起作用的答案。这里有我的指令:.directive('carrouselPreview',function(){returnfunction(scope,element,attrs){scope.$watch(scope.carouselPreview,function(){alert('changed');},true);}});这会监视对scope.carouselPreview的更改,它是通过此函数更改的:$scope.showPreview=function(ind){$scope.carouselPreview=ind;}

javascript - 将参数从指令传递到 Controller 函数

我见过很多这样的问题,但还没有找到有效的解决方案。这是一个不起作用但应该起作用的fiddle。http://jsfiddle.net/cdparmeter/j2K7N/2/Controller:$scope.foo=function(textArray){console.log(textArray)};指令:return{restrict:'E',replace:'true',scope:{methodToCall:'&method'},template:"PushFinish",link:function(scope,element,attrs){scope.paragraphs=[

javascript - Jasmine 测试中未调用 AngularJS 指令链接函数

我正在创建一个在其link函数中调用服务的元素指令:app.directive('depositList',['depositService',function(depositService){return{templateUrl:'depositList.html',restrict:'E',scope:{status:'@status',title:'@title'},link:function(scope){scope.depositsInfo=depositService.getDeposits({status:scope.status});}};}]);目前该服务很简单:ap

javascript - AngularJS:指令 - 无需使用引号即可传递字符串

这是我创建的指令:HTML:JavaScript:.directive('pTest',function(){return{scope:{something:'=?'},templateUrl:'components/testTemplate.html',controller:'testController'};});我希望能够通过以下方式将“bla”作为不带“”的字符串传递:我知道可以通过链接中的attributes参数实现,但在这种情况下它是无关紧要的(如果我错了请纠正我),因为我将这些参数直接传递给范围。 最佳答案 I'dli

javascript - 动态添加 Angular 指令

我对AngularJS还很陌生,我发现它是一个陡峭的学习曲线,我觉得我真的忽略了这里的要点,但这里是:我想从Controller向我的页面添加指令。所以我想如果我将指令标记添加到页面,指令和关联的Controller/模板等也会随之添加。在阅读了$compile方法之后,我认为这将用于将此指令绑定(bind)到其新创建的标记。这部分在下面被注释掉了,但是不管有没有这个,我都需要登录这个词出现并且它的Controller来控制它?当指令标记在加载时位于页面上时,我可以在网络上找到很多类似的示例,并且可以使它们正常工作,所以这就是为什么认为它与$compile方法有关-什么我失踪了吗?HT

javascript - 如何在 AngularJS 指令中获取元素的 x 和 y 位置

在指令的链接函数部分,我们可以访问element对象。我想确定element对象是否在当前视口(viewport)内/是否可用。我目前有以下内容:link:function(scope,element,attrs,controller){varpage=angular.element(window);page.bind('scroll',function(){varwindowScroll=page[0].pageYOffset,windowHeight=page[0].innerHeight;//elementScroll=element.xpos;-thisisundefined?