动态创建“ inputName”时,有人将如何使用formName.inputName。$ valid?
<form name="formName">
<input ng-repeat="(variable) in variables"
type="text" name="variable.name"
ng-model="variable.name" required />
</form>
HTML输入属性“名称”的输出将是字符串“ variablename”,该字符串将应用于所有重复输入。
如果我们尝试这个
<form name="formName">
<input ng-repeat="(variable) in variables"
type="text" name="{{ variable.name }}"
ng-model="variable.name" required />
</form>
HTML输入属性“名称”的输出将是字符串“ {{variable.name}}”,该字符串将应用于所有重复输入。
在这两种情况下,将不会动态创建每个重复输入元素的name属性;所有输入将共享相同的输入名称。如果您想基于特定名称调用特定输入,则效果不佳。
我找不到满足部分或全部这些需求的答案。这就是我想出的。
也许有更好的方法,所以请分享您的想法。
我正在使用Angularjs 1.3.0-beta.8
我有一个带有多嵌套指令的表单,这些指令都包含输入,选择等。这些元素都包含在ng-repeats和动态字符串值中。
这是使用伪指令的方法:
<form name="myFormName">
<nested directives of many levels>
ex: <input ng-repeat=(index, variable) in variables" type="text"
my-name="{{ variable.name + '/' + 'myFormName' }}"
ng-model="variable.name" required />
ex: <select ng-model="variable.name" ng-options="label in label in {{ variable.options }}"
my-name="{{ variable.name + '/' + 'myFormName' }}"
</select>
</form>
注意:如果需要序列化输入表,则可以添加字符串索引并为该字符串索引。这就是我所做的。但是,动态名称输入意味着您可能不知道表单输入的名称,因此如何调用$
scope.formName。??????。您可以迭代$ scope.formName对象以获取与某个值匹配的键。这意味着像这样的字符串连接:
my-name="{{ dynamicString + hello + '/' + 'myFormName' }}"
然后,在$ scope.myFormName中,只需遍历对象并收集包含“ hello”的任何键,即可找到任何表单输入名称。
app.directive('myName', function(){
var myNameError = "myName directive error: "
return {
restrict:'A', // Declares an Attributes Directive.
require: 'ngModel', // ngModelController.
link: function( scope, elem, attrs, ngModel ){
if( !ngModel ){ return } // no ngModel exists for this element
// check myName input for proper formatting ex. something/something
checkInputFormat(attrs);
var inputName = attrs.myName.match('^\\w+').pop(); // match upto '/'
assignInputNameToInputModel(inputName, ngModel);
var formName = attrs.myName.match('\\w+$').pop(); // match after '/'
findForm(formName, ngModel, scope);
} // end link
} // end return
function checkInputFormat(attrs){
if( !/\w\/\w/.test(attrs.rsName )){
throw myNameError + "Formatting should be \"inputName/formName\" but is " + attrs.rsName
}
}
function assignInputNameToInputModel(inputName, ngModel){
ngModel.$name = inputName
}
function addInputNameToForm(formName, ngModel, scope){
scope[formName][ngModel.$name] = ngModel; return
}
function findForm(formName, ngModel, scope){
if( !scope ){ // ran out of scope before finding scope[formName]
throw myNameError + "<Form> element named " + formName + " could not be found."
}
if( formName in scope){ // found scope[formName]
addInputNameToForm(formName, ngModel, scope)
return
}
findForm(formName, ngModel, scope.$parent) // recursively search through $parent scopes
}
});
这应该可以处理许多您不知道表单在哪里的情况。也许您有嵌套的表单,但是由于某种原因您想将此输入名称附加到两个表单上?好吧,只需传递您要附加输入名称的表单名称即可。
我想要的是一种将动态值分配给我永远不会知道的输入的方法,然后只需调用$ scope.myFormName。$ valid。
这可能是一个过大的杀伤力,并且1.3+中存在更好的解决方案。我当时找不到它。现在对我有用。
祝好运!希望这可以帮助某人!!!!
问题内容: 如何在ng-repeat中使用动态名称命名表单? 我想动态命名每种形式。例如,将$ index添加到表单名称。我该如何实现?我在ng-repeat上尝试了ng-init,但是没有用。 问题答案: 您可以这样做: 编辑 : 您也可以使用,如下所示: 如果仅基于表单的有效性应用类,则可以将样式应用于自动添加的类,例如:
问题内容: 我想序列化一个对象,以便根据字段的类型对字段之一进行不同的命名。例如: 在这里,我希望将字段序列化为类似的内容,而不是总是根据情况包含一个称为不同类型的字段。 使用Jackson怎么能达到这样的目的? 问题答案: 使用自定义。 然后,假设您要序列化以下两个对象: 第一个将打印: 第二个: 我使用了包装对象的名称,因为它仅用作花边固定器。如果要删除它,则必须为 整个 类编写一个自定义序列
问题内容: 我想序列化一个对象,以便根据字段的类型对字段之一进行不同的命名。例如: 在这里,我希望将该字段序列化为类似的内容,而不是总是根据情况将字段称为包含不同类型的字段。 使用Jackson怎么能达到这样的目的? 问题答案: 使用自定义。 然后,假设您要序列化以下两个对象: 第一个将打印: 第二个: 我使用了包装对象的名称,因为它仅用作花边固定器。如果要删除它,则必须为 整个 类编写一个自定义
问题内容: 有没有一种方法可以在序列化期间更改Data属性的名称,因此我可以在WEB Api中重用该类。 例如,如果我要返回用户的分页列表,则应将Data属性序列化为“用户”,如果要返回项目列表,则应将其称为“项目”,依此类推。 可能是这样的: 编辑: 我希望对此功能进行控制,例如,尽可能传递名称。如果我叫,我还是想序列化的属性被称为,没有。 例 问题答案: 您可以通过自定义进行操作。解析器可以寻
问题内容: 我如何做到这一点: 问题答案: 请改用方括号表示法。 或者,在现代JavaScript中:
本文向大家介绍JavaScript 动态/可变属性名称,包括了JavaScript 动态/可变属性名称的使用技巧和注意事项,需要的朋友参考一下 示例 有时,属性名称需要存储到变量中。在此示例中,我们询问用户需要查找哪个词,然后提供来自我命名的对象的结果dictionary。 注意我们如何使用[]括号表示法来查看名为word;的变量。如果我们使用传统的.表示法,那么它将按字面值取值,因此: 您也可以