0

1 つのオブジェクトに接続されている 2 つの選択ボックスに問題があります。プランカーを作成しましたが、アプリでは問題ありません。基本的に、コードからすべてをプランカーにコピーしましたが、そこでは機能していますが、コードでは機能していません。ここにリンクがあります:plnkr

    app.controller('MainCtrl', function($scope) {
      $scope.consoleLog = '';
      $scope.sites = [
{name: 'site1', id: 001, datasources:[
  {name: 'one', id: 441},
  {name: 'two', id: 442},
  {name: 'three', id: 443}
]},
{name: 'site2', id: 002, datasources:[
  {name: 'four', id: 444},
  {name: 'five', id: 445},
  {name: 'six', id: 446},
  {name: 'seven', id: 447}
]}];

$scope.selectedSiteIndx = 0;
$scope.selectedSite = $scope.sites[$scope.selectedSiteIndx].id;
$scope.selectedDs = $scope.sites[$scope.selectedSiteIndx].datasources[0].id;

$scope.selectedSiteChanged = function (selectedSite){
    var siteIndx = $scope.sites.map(function(e){return e.id}).indexOf(selectedSite);
    $scope.selectedDs = $scope.sites[siteIndx].datasources[0].id; 
    $scope.selectedSite = selectedSite;
    $scope.selectedSiteIndx = siteIndx;
};
$scope.selectedDsChanged = function(selDs){
    $scope.selectedDs = selDs;
    $scope.consoleLog += 'selected:'+selDs+', ';
};
    });

そこに2つの選択ボックスがあります。まずはサイト選びです。2 つ目は、データソースの選択です。最初のボックスでサイトを選択すると、2 番目の選択ボックスのリストが新しいオブジェクトからネストされたデータソースに変更されます。そして、問題なく正常に動作しています。サイトを変更すると、新しいデータが 2 番目のボックスに入力されます。デフォルトのものを選択したいです(最初のオプションが利用可能です)。したがって、サイトを選択すると、サイトの最初のデータソースが自動的に選択されます。私のアプリの問題 (何らかの理由で plnkr ではありません) は、box2 から別のデータソースを選択し、最初のボックスでサイトを変更したときです。デフォルトの最初のオプションは自動的には選択されません。データソースを変更する前に、サイトを何度も変更できますが、常にデータソース ボックス 2 の最初のオプションが選択されます。しかし、データソースボックスに触れると停止します。私が言ったように、あなたはできる」t plnkr でそれを参照してください。また、サイトを変更すると、データソース変更イベント リスナーが datasource Id = null でトリガーされることにも気付きました。しかし、これはボックス2に触れた後にのみ起こりました

理由はありますか?私はさまざまなことをオプションに試してみましたが、ectを選択しました。それを機能させることはできません。最初のオプションを常に選択できるようにしたいだけです。

4

1 に答える 1