2017-03-12 3 views
0

Ich habe eine HTML-Seite, die ich wie folgt einschließen.AngularJS Include Aktualisieren

Diese Seite enthält ein Devextrem-Steuerelement, das eine Datenquelle über Ajax lädt.

html:

<div class="tab-container" style="height:100%; width:100%"> 
    <div dx-tabs="lowerTabOptions" dx-item-alias="lowerTab"> 
    </div> 
</div> 

Controller:

DemoApp.controller('NavigationController', function DemoController($scope, $templateCache) { 
$scope.lowerTabURL = "LowerPanelTest"; 

$scope.currentSidebarId = 10100; 

$scope.lowerTabOptions = { 
    dataSource: new DevExpress.data.CustomStore({ 
     load: function (loadTabOptions) { 
      console.log('get tabs'); 

      var d = $.Deferred(); 
      $.ajax({ 
       url: 'GetLowerTabs', 
       data: { currentSidebarId: $scope.currentSidebarId }, 
       type: 'GET', 
       success: function (result) { console.log(result); d.resolve(result); } 
      }); 

      return d.promise(); 
     } 
    }), 
    animationEnabled: true, 
    swipeEnabled: true, 
    itemTitleTemplate: 'title', 
    height: '100%' 
}; 


$scope.navBarClicked = function (sidebarId) { 
    console.log(sidebarId); 
    $scope.currentSidebarId = sidebarId; 
} 
}); 

Dies funktioniert korrekt aber ich navbar haben die, wenn sie angeklickt wird, sollte die Registerkarte Steuerung ändern.

Derzeit ändere ich die sidebarId, die an den Ajax-Aufruf übergeben wird, aber ich brauche eine Möglichkeit, die Include-Seite neu zu laden, so dass diese erneut aufgerufen wird. Ich habe versucht, das lowTabUrl zu ändern und es dann wieder zurück zu ändern, aber das aktualisiert die Seite nicht. Was ist der beste Weg, dies zu tun?

Antwort

0

Es auf Ihrer abgewinkelte Ausführung abhängt, müssen Sie nach Änderungen des Wertes für param sidebarId sehen, @ Winkel 1 dies durch scope.watch erreicht

scope.$watch('sidebarId', function(newValue, oldValue) { 
    // ..call refresh here 
}); 

in Winkel 1.5 und höher können Sie ngOnChages außer Kraft setzen

this.$onChanges = function (changesObj) { 
    if (changesObj.sidebarId) { 
     // changesObj.sidebarId.currentValue 
    } 
    }; 
Verwandte Themen