Angularjs 使用ng include遍历数组时保持状态复选框

Angularjs 使用ng include遍历数组时保持状态复选框,angularjs,angularjs-ng-include,Angularjs,Angularjs Ng Include,我使用ng inculde显示带有复选框的对象我的问题是如果我在同一页面中更改了带有的对象。。复选框仍保持其状态 例如: 我有一个像这样的模型 $scope.templates = [{ name: 'Object 1', url: 'template1.html', options:['A1','B2']}, { name: 'Object 2', url: 'template1.html', options:['A1','B2']}]; 当

我使用ng inculde显示带有复选框的对象我的问题是如果我在同一页面中更改了带有的对象。。复选框仍保持其状态

例如:

我有一个像这样的模型

 $scope.templates = [{
    name: 'Object 1',
    url: 'template1.html',
    options:['A1','B2']},
{
    name: 'Object 2',
    url: 'template1.html',
    options:['A1','B2']}];
当所选对象为对象1且我选中“A1”后,我更改选择并移动到对象2,它仍将A1显示为所选


我很确定这不起作用,因为上面的JSFIDLE对
选项使用了相同的值
数组值:

$scope.templates = [{
    name: 'Object 1',
    url: 'template1.html',
    options:['A1','B2']}
{
    name: 'Object 2',
    url: 'template1.html',
    options:['A1','B2']
}];
当AngularJS执行脏检查以确定是否需要在DOM中更新该值时,它将需要比较/检查内部值。在您的情况下,
选项
数组的值相同,因此AngularJS决定不需要对文档进行更新

我对您的JSFIDLE做了一些小的更改:

  • 使用
    ng model
    复选框“persistence”
  • 对象2上的
    选项
    数组修改为对第一个对象唯一
  • 将AngularJS库升级到1.2.1(您的解决方案不需要此库)

  • 工作示例: