问题标签 [custom-directive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
35 浏览

angularjs - 有没有办法禁用 .highcharts-axis highcharts-yaxis || highcharts-axis-resizer 重复行为?

示例图像

在拖动 Y 轴(highcharts-axis-resizer)以更改图形的纵横比时,有时会生成同一组和类的重复轴(甚至多个轴),并且即使在改变行为时也无法正常工作.

0 投票
2 回答
835 浏览

angular - 在 Angular 中使用自定义指令上传多个文件

我正在尝试创建一个自定义指令来验证多个文件上传。但在自定义指令中,控件只是返回最后一个文件的详细信息而不是数组。

下面是代码:

文件上传.html:

文件上传.ts

}

自定义验证器.ts:

0 投票
0 回答
65 浏览

javascript - AngularJS 自定义指令传递函数未定义

所以我创建了一个指令,当点击时应该表现得像 ng-click`,这意味着通过 html 传递的任何函数都应该工作。当我记录属性等时,它会显示该功能,但是当我单击时没有任何反应,并且日志中的功能显示未定义

指示:

点击在它输出日志时被注册,但是当你记录$scope.callback()它的未定义并且在没有()的情况下记录时它显示ƒ (b){return s(a,b)}

HTML:

JS:

任何帮助将不胜感激。

编辑:它本身就可以工作:

但是当它像这样嵌套时它不会:

0 投票
0 回答
31 浏览

javascript - 自定义指令中的范围没有监听控制器范围的变化

我想要什么:--- 我想禁用登录页面上的几个链接,直到并且除非给出正确的密码。我可以让他们隐藏,但因为我正在学习,所以我想了解如何做到这一点。单击提交按钮将启用禁用的链接。

我做了什么:---我已经编写了代码,我认为它应该可以工作。我正在使用自定义指令和链接:绑定事件。我认为问题出在视图上(可能),可能出在 ng-controller 中。

出了什么问题:--- 所以控制器中的范围变化没有反映在指令中。因为 event.preventDefault() 没有被触发。所以最初指令作用域采用控制器中作用域的值。如果我像现在一样在控制器中设置了 $scope.linkenabled = true 的值,那么指令范围将设置为 true。但是,当我单击登录提交按钮时,尽管控制器中的 $scope.linkedenable 值由于 $scope.linkedenable = - $scope.linkedenable 而变为 false。但它没有反映在指令范围中,它仍然是 true。

这是我的代码:--- login.js

索引.cshtml

请帮我解决这个问题。提前致谢

0 投票
0 回答
198 浏览

angular - 我如何将 html 代码附加到 Angular 中自定义指令的输入字段

我试图以角度形式显示字段的错误:

当我们在表单字段中进行更改并在控制台中打印它时,我能够得到错误,但我无法将其附加到 html 中:

app.component.html:

这里 validate 是自定义指令,不,我想这样:

我的自定义指令文件是:

我想将 this.message 附加到上述输入字段。

0 投票
2 回答
460 浏览

angular - 如何在 [ngClass] 中使用自定义属性指令?

我已经定义了一个自定义属性指令:

它使用灰色背景和深蓝色字体颜色更改共享“vvdirective”CSS 类的元素。它还打印控制台消息。

它适用于传统用例:

图片: 在此处输入图像描述

当我想在组件中使用此指令时:

HTML:

&TS:

& 调用 APP TS:

它不起作用(背景/字体颜色不会改变,也不会打印控制台消息):

图片: 在此处输入图像描述

它应该是这样的:

图片: 在此处输入图像描述

令我惊讶的是,最后两个代码示例(一个带有老式指令调用的示例,以及一个通过组件调用的示例)都具有 CSS 类:

在此处输入图像描述

但只有第一个(未嵌入组件中)受指令更改的影响。

看起来在后一种情况下组件中使用的 ngClass 指令的工作方式不同。

可能跟app的生命周期有关,我不知道。

因此,如果您知道如何同时使用 ngClass 和我的自定义指令来制作组件,我会密切关注您的回答!

这里是Plunker: plunker

这里是 GITHUB 存储库:git repo

最好的,

0 投票
1 回答
226 浏览

angular - 我在 Angular for for 循环中创建了一个自定义指令。收到警告,“无法绑定到‘appNgLoopOf’,因为它不是‘p’的已知属性

my-for.directive.ts

我的观点如下:

d-test2.component.html

组件看起来像:

d-test2.component.ts

所以这里的问题是d-test2.component.html中的段落元素没有在浏览器中呈现。在浏览器控制台中看到警告。

0 投票
1 回答
100 浏览

javascript - 在一个类中存储一个变量“gobally”以供graphql指令中的多个方法使用

所以我觉得我的问题很可能是关于类的 JS 语法问题,但我的问题与用于在 GraphQL 中创建自定义指令的类this直接相关。graphql-toolsSchemaDirectiveVisitor

一点上下文:在 GraphQL 中创建自定义指令时,一种方法是扩展 graphql-tools 提供的 SchemaDirectiveVisitor 类,并覆盖它们的任何默认方法,这些方法可以应用于 gql 模式的不同位置。更多细节可以在这里看到

在我的具体情况下,我使用该方法visitInputFieldDefinition是因为我想添加一些自定义逻辑来验证用户是否有权编辑特定字段。主要问题visitInputFieldDefinition是它似乎只在构建服务器时触发,因为它没有解析器功能。同时,其他方法,例如visitFieldDefinition确实有一个resolve()函数,每次有这个指令的新请求时都会触发。

visitInputFieldDefinition我试图做的是在读取我的 gql 模式之后调用服务器启动时将一些数据存储在数组中。我可以将一些数据保存在类外部的数组中,然后在我的 resolve() 函数中使用该数据来确定是继续还是返回错误。我能够做到这一点并且它有效,但我的问题实际上是关于如何获得相同的行为,但以某种方式将这些数据存储在我的类内的 var 中,而不是类外的全局变量中

所以我的代码,简化后,看起来像这样

正如我所提到的,这种方法对我来说效果很好,但我不喜欢我在类外有一个全局变量的事实,而我想把它放在里面。我试图将它存储在类中的变量中,甚至存储在类中的另一个方法中,但我有两个问题

  1. 该类在启动服务器时被多次调用,因此即使我设法在构造函数级别将数据存储在 var 中,它也不会通过多次调用持续存在,如果constructor()我包含类似的东西,它总是会被重置this.myVar = []

  2. 我似乎无法访问函数this内部field.resolve(),我不知道如何授予它访问类的权限,this以便我可以调用另一个方法或类 var,例如this.myVar

问题主要是关于最佳实践,可能避免使用外部全局变量的可能改进,或者根本没有办法做到这一点,这种方法可以被认为是“正确的”。

谢谢阅读!任何讨论都是受欢迎和有用的!

0 投票
0 回答
35 浏览

angular - 如何在 Angular 2 中使用自定义指令

我遵循了有关创建自定义指令以延迟加载角度 8 图像的教程,如下所示:

我有一个应该渲染多个图像的组件(我正在考虑为“src”创建一个数组),我想使用这个指令,这样图像就不会同时加载。在我获得此代码的教程中,它没有说明我如何使用它。你能告诉我如何使用它。谢谢!

0 投票
1 回答
46 浏览

javascript - ng-disable not working when I am trying to use custom directive

I am learning AngularJS. I am trying to make a custom directive that checks if email already exists. I get my emails from array that has like 9 users and I can successfully get them using Factory. My problem with my custom directive is that no matter what input I enter the button will be disabled. The idea of the directive is when I lose focus it will check if the email exist or it doesn't if it does it will disable the button if it doesn't then the button will be enabled.

That is my directive as you can see I tried using flags it didn't work I tried changing the flag to booleans still not working I will also show my HTML. I am not sure if var emailInput = email.val() making problems to me because I am not using ng-model.

That is my HTML. Note I am not checking if email is valid in this task. I am just checking if the email already exist in my array or not.