Angular JS错误:[ngRepeat:dupes]不允许在转发器中重复

时间:2020-06-01 14:04:54

标签: javascript angularjs angular1.6

我正在遇到[ngRepeat:dupes]问题。

systemService.getAllSystemSettings().then(
  function (obj) {
    $scope.project.meta.franchise = obj.find(item => item.keyword === "Program");
    console.log($scope.project.meta.franchise);
    $scope.project.meta.franchise = $scope.project.meta.franchise['keywordValue'].split(';');
    console.log($scope.project.meta.franchise);
    return $scope.project.meta.franchise);
  });

在我的HTML页面中:

<select class="form-control" ng-model="project.meta.franchise" ng-disabled="readOnlyUser">
  <option ng-repeat="option in project.meta.franchise" value="{{option}}">{{option}}</option>
</select>

控制台中的输出:

{ keyword: "Program", keywordValue: "test_abc;abc_&xyz;efg_&_hij"
}
[
  "test_abc",
  "abc_&xyz",
  "efg_&_hij"
]

控制台错误:

enter image description here

请帮助我解决我尝试按$索引进行跟踪的问题,但也没有解决方案。通过使用$ track,它不会在选项中显示列表。提前谢谢。

3 个答案:

答案 0 :(得分:1)

尝试创建这样的自定义唯一索引

private: System::Void saveToolStripMenuItem_Click(System::Object ^ sender, System::EventArgs ^ e) {
  bool save = true;
  if (save == true) {
    saveFileDialog1 - > Title = "";
    saveFileDialog1 - > DefaultExt = "*.txt";
    if (saveFileDialog1 - > ShowDialog() == System::Windows::Forms::DialogResult::OK) {
      FileStream ^ f = gcnew FileStream(saveFileDialog1 - > FileName, FileMode::Create);
      StreamWriter ^ w = gcnew StreamWriter(f);
      //write lines
      w - > Close();
    }
  } else {
    saveFileDialog1 - > Title = "";
    saveFileDialog1 - > DefaultExt = "*.txt";
    if (saveFileDialog1 - > ShowDialog() == System::Windows::Forms::DialogResult::OK) {
      FileStream ^ f = gcnew FileStream(saveFileDialog1 - > FileName, FileMode::OpenOrCreate);
      //String filePath =.FileName;
      StreamWriter ^ w = gcnew StreamWriter(f)
      //write lines
      w - > Close();
    }
  }
}

答案 1 :(得分:1)

尝试在HTML代码中将ng-model的值更改为project.franchise。下面是我应用的代码,它对我有用:-

<select class="form-control" ng-model="project.franchise" ng-disabled="readOnlyUser">
  <option ng-repeat="option in project.meta.franchise)" value="{{option}}">{{option}}</option>
</select>

答案 2 :(得分:0)

尝试在您的HTML select语句中给多个='true'。请参阅GitHub上的Davis Ford's帖子。