2016-04-01 11 views
0

Was ist der beste Weg, einen div füllen (oder ng-include) mit einer fertigen .html Vorlage anuglarjs verwenden, nicht ng-Ansicht mit und Routing?Populate div auf Click-Ereignisse

für ex:

<div> 
    <ng-include src="" /> 
</div> 

<input type="button" ng-click="getTemplate()" value="Get template" /> 

$scope.getTemplate = function() { 
//Get and..populate template here 
} 
+1

'ng-if/ng-show/ng-hide'? –

Antwort

2

ng-show/ng-hide/ng-if

<div ng-controller="TodoCtrl"> 
    <div ng-show="show">Hello</div> 
    <button ng-click="showHide()">Boom</button> 
</div> 



function TodoCtrl($scope) { 
    $scope.show = true; 
    $scope.showHide = function(){ 
     $scope.show = !$scope.show 
    } 
} 

fiddle

DifferencezwischenngShow/ngHide & ngIf Verwendung - ng-if wird Elemente aus DOM entfernen. Das bedeutet, dass alle Ihre Handler oder irgendetwas anderes, das mit diesen Elementen verbunden ist, verloren gehen. ng-show/ng-hide entfernt die Elemente nicht aus DOM. Es verwendet Stile CSS zu verstecken/Show-Elemente, auch ng-if ein Kind Rahmen schafft, während ng-show/ng-hide nicht

Dank

+0

Wollen Sie nicht den Unterschied erklären? Oder Code anzeigen, der für das OP funktioniert? –

2

Verwenden ng-if oder ng-show:

<div ng-if="templateVisible"> 
    <ng-include src="" /> 
</div> 

<input type="button" ng-click="getTemplate()" value="Get template" /> 

$scope.getTemplate = function() { 
    $scope.templateVisible = true; 
} 

Und mit ng-show:

<div ng-show="templateVisible"> 
    <ng-include src="" /> 
</div> 

<input type="button" ng-click="getTemplate()" value="Get template" /> 

$scope.getTemplate = function() { 
    $scope.templateVisible = true; 
} 

Der Unterschied zwischen den beiden ist, dass ng-if nicht die nicht bevölkern DOM, wenn die Bedingung ist falsch, während ng-show tut, aber markiert es als display: none.