gpt4 book ai didi

javascript - 将一些属性传递给 AngularJS 中的指令

转载 作者:行者123 更新时间:2023-12-02 18:01:49 24 4
gpt4 key购买 nike

我创建了一个指令(itcValidationMessages),它可以让我显示验证消息,并将其作为属性放在表单元素上,如下所示:

<form id="register-form" novalidate ng-submit="register()" itc-validation-messages ...

我上面提到的指令会迭代表单中的所有输入元素,并在任何人处于无效状态时显示错误消息。

我将验证消息存储在单独的文件中(因为可能有很多消息,并且我想为 i8n 做好准备,所以我将它们与指令分开),如下所示:

angular.module('models.ValidationMessages', []).constant("ValidationMessages", {
validationMessages: {
required: 'Value is required!',
email: 'You should enter a valid email address!',
minlength: 'Enter more characters!',
maxlength: 'You have entered to many characters!'
}

});

将这些消息置于常量中是否正确?

我为每个验证器都有一条默认消息,但我想让为每个输入添加自定义消息,例如:

<input type="password" minlength-message="Your password should has at least 3 characters"

最好的方法是什么?因为为什么我使用上面这样的属性(minlength-message),如果不使用 $observe,我就无法从我的指令访问它。我不想声明一个对象并将这些自定义消息放在一个位置,因为我应该向每条消息添加一个输入名称以识别它们属于哪个输入。所以我尝试寻找一些方便且符合艺术的解决方案。

我不需要在 itcValidationMessages 指令中使用独立的作用域,并且我不希望为每个验证器(例如 minlengthMessage)使用单独的指令来将特定的验证消息传递给应该显示此消息的指令 (itcValidationMessages)。

最佳答案

以下是有关如何从指令访问数据的示例:

var myModule = angular.module('myModule', [])
.directive('myComponent', function () {
return {
restrict:'E',
scope:{
minlengthMessage:'@'
}
};
})

现在你可以从

获取字符串
$scope.minlengthMessage

关于javascript - 将一些属性传递给 AngularJS 中的指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20458465/

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