我遇到动态生成的输入问题。 我怎样才能获得他们的价值观?
<p ng-repeat="(key, value) in selectedTemplate.attributes.Params.attributes">
{{key}} : <tr><input ng-model="params[key]" type="text" placeholder="{{value}}" >
</p>
//attributes are like this
"attributes": {
"End Date": "java.sql.Timestamp",
"Containers": "java.lang.Object",
"Begin Date": "java.sql.Timestamp"
}
感谢。
答案 0 :(得分:1)
只需在控制器中声明$scope.params = {}
即可。
之后您可以通过以下方式访问这些值:
$scope.params['End Date']
,$scope.params['Containers']
,$scope.params['Begin Date']
答案 1 :(得分:0)
你的第一个问题是在ng-repeat范围内创建params。因此,您需要在控制器初始化中声明它:
$scope.params = [];
然后,要遍历变量,您可以在控制器中执行以下操作:
for (var key in attributes) {
if (attributes.hasOwnProperty(key)) {
alert($scope.params[key]);
}
}
顺便说一句,params是一个保留的关键字。在某些浏览器中使用它可能会失败。
答案 2 :(得分:0)
我有一个演示版:Here
我使用ng-model名称创建简单示例,按照它并申请你的案例。
HTML:
<p ng-repeat="(key, value) in attributes track by $index">
<input ng-model="params[key]" type="text" placeholder="{{value}}" >
</p>
<p>{{params}}</p>
控制器:
$scope.attributes = {
"End Date": "java.sql.Timestamp",
"Containers": "java.lang.Object",
"Begin Date": "java.sql.Timestamp"
};
// You should create params variable.
$scope.params = {};