动态生成的ng-model的动态默认值

时间:2014-03-26 00:39:52

标签: angularjs

我在使用angular时为动态生成的表单字段填充默认值时遇到问题。所以,我有一个登录表单,它根据aREST接口返回的attribs生成自己。因此,对于我的html页面,我只有:

 <li ng-repeat="element in elements"> 
    <label>UserName</label>
    <input type="{{element.inputType}}" ng-model="{{element.fieldName[element]}}" required="required"/>       

默认值在elements对象中名为placehoder的属性中返回。以下标记给出了我想要实现的任务的概念

 <input type="{{element.inputType}}" ng-model="{{element.fieldName[element]}}" required="required" placeholder="{{element.placeholder}}"/>

最后,当用户点击提交时,我需要发布文本字段的默认值(如果尚未更改)。

任何帮助都将受到高度赞赏。 感谢

2 个答案:

答案 0 :(得分:0)

如果你可以添加/使用像underscorejslodash这样的库,那么你可以使用他们的_.defaults():

var object = { 'name': 'barney' };
_.defaults(object, { 'name': 'fred', 'employer': 'slate' });
// → { 'name': 'barney', 'employer': 'slate' }

仅限角度,您可以在表单中添加一个指令,即查看“提交”并为您设置默认值。

答案 1 :(得分:0)

感谢您回复@nilsK,我对javascript框架非常陌生,而Angular是我第一个接手的人。 因此,在我的R&amp; D中,我通过将两个值数组(即FieldName和Placeholder)添加到我用于将数据发布到后端的范围对象来解决我的问题。我从REST服务接收的对象(占位符和fieldName)为这些数组赋值:

$scope.user={};
$scope.user.FieldNames=[];
$scope.user.FieldValues=[];

angular.forEach($scope.elements,function(value,index){
                       $scope.user.fieldValues[index] = $scope.elements[index].placeholder;
                       $scope.user.fieldNames[index] = $scope.elements[index].fieldName;




              })

并在html表单上,我将ng-model绑定到我想在文本字段中显示为默认值的范围数组。

<input type="{{element.inputType}}" ng-model="user.fieldValues[$index]" required="required" />

因此,如果用户未更改默认值,则会过帐默认值,如果有更改,则会过帐更新的值。 任何改进此解决方案的建议都是受欢迎的。