我有以下输入,需要'name'和'value':
<script>
$scope.userAttributes = response.userAttributes.split(','); //$scope
/* OR */
self.userAttributes = response.userAttributes.split(','); //controllerAs
</script>
<div class="item item-input" ng-repeat="userAttribute in userAttributes"> <!-- $scope -->
<input type="text" name="{{userAttribute }}" dynamic-model="(userAttribute | alphanumeric | spaceToUnderscore | lowercase)">
</div>
<!-- OR -->
<div class="item item-input" ng-repeat="userAttribute in controllerAs.userAttributes"> <!-- controllerAs -->
<input type="text" name="{{userAttribute}}" dynamic-model="'controllerAs.' + (userAttribute | alphanumeric | spaceToUnderscore | lowercase)">
</div>
<!-- Output example: -->
<input type="text" ng-model="your_age" name="Your Age"/> <!-- $scope -->
<!-- OR -->
<input type="text" ng-model="controllerAs.your_age" name="Your Age"/> <!-- controllerAs -->
nb:dynamic-model指令 - 允许您将过滤器应用于值以生成模型名称 - 例如,删除空格等。
使用以前的输出示例方法之一,如何从控制器访问名称属性“您的年龄”和用户输入的值(例如:23),例如,点击按钮。
这只是一个例子,ng重复将有不同数量的输入和变量名等,具体取决于很多因素。
由于
答案 0 :(得分:2)
在我看来,根据您的具体情况,您有两种选择:
以上2的例子。
使用Javascript:
var userAttributes = response.userAttributes.split(','); //$scope
$scope.userAttributes = [];
for(var attr in userAttributes){
if(attr == "your_age"){
$scope.userAttributes.push({value: attr, name: "Your Age"});
}
//...etc
}
HTML:
<div class="item item-input" ng-repeat="userAttribute in userAttributes">
<input type="text" name="{{userAttribute.attr}}" ng-model="userAttribute.value" /> //not sure on dynamic-model usage
</div>