3 回答
TA贡献1860条经验 获得超8个赞
您需要首先声明一个可以使用ng-repeat. 之后,您可以使用$indexforng-repeat访问每个项目的索引并推送您的映射对象。
使用双向绑定,只要您按下项目,内容就会立即显示在屏幕上。
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.list = [{
name: 'Item 1',
mappings: []
}, {
name: 'Item 2',
mappings: []
}, {
name: 'Item 3',
mappings: []
}];
$scope.addMapping = index => {
// this is where your service call goes
$scope.list[index].mappings.push({
name: `Mapping ${index + 1}.1`,
id: new Date().getTime(),
selected: true
}, {
name: `Mapping ${index + 1}.2`,
id: new Date().getTime(),
selected: false
})
};
});
.entity {
background: #ccc;
margin-bottom: 1em;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<div class="form-group entity" ng-repeat="item in list">
<div ng-click="addMapping($index)">{{ item.name }}</div>
<div class="form-group" ng-show="item.mappings.length > 0" ng-repeat="mapping in item.mappings">
<div class="">
<label for="{{$index}}_{{mapping.id}}">{{ mapping.name }}</label>
<input type="checkbox" id="{{$index}}_{{mapping.id}}" ng-model="mapping.selected"/>
</div>
</div>
</div>
<pre>{{list | json}}</pre>
</div>
TA贡献1876条经验 获得超5个赞
您可以使用 angularjs 中提供的 ng-repeat。用于循环对象数组,可以打印在 html 中。
<h1 ng-repeat="x in records">{{x}}</h1>
这里的记录是一个对象数组,x 是一个正在显示的对象。您还可以使用点符号(如 x.name 等)访问 x 的键。
TA贡献1790条经验 获得超9个赞
您可以使用 ng-html-bind 轻松绑定 html
<p ng-bind-html="myText"></p>
在哪里 $scope.myText = <....some html text..>
你可以在 ng-repeat 中使用这个东西
添加回答
举报