2014-12-17 18 views
5

W moim Kątowymi projekcie używam szczególną wartość, która w moim kontroler nazywa się coś takiego:Czy istnieje sposób zmiany nazwy zmiennej kątowej w widoku?

$scope.feature1.items.thisItem

Jest szczególności <div> moim zdaniem, że używa thisItem wiele razy i to dość niechlujny być odnosząc do niego jako {{feature1.items.thisItem}} na przykład:

<div id="{{feature1.items.thisItem}}header> 
    <h1> You've reached the section about {{feature1.items.thisItem}} </h1> 
</div> 

Czy istnieje jakiś sposób, aby zmienić nazwę tej zmiennej w widoku? Chciałbym po prostu nazwać to one. Próbowałem już {{feature1.items.thisItem as one}}, ale to nie zadziałało. Jakieś inne pomysły?

Odpowiedz

7

Tak! ng-startowych został zaprojektowany do tego samego celu - aliasing innej zmiennej:

<div ng-init="thisItem = feature1.items.thisItem"> 
    <h1> You've reached the section about {{thisItem}} </h1> 
</div> 
+0

Niestety wydaje się, że ng-init został usunięty w Angular 2+ – Casebash

2

Tak można użyć ng-init na górze elementu DOM

<div ng-app='app'> 
    <div ng-controller="MyController" ng-init="myVar=feature1.items.thisItem"> 
     {{myVar}} 
    </div> 
</div> 
3

radziłbym przed wykorzystywaniem NG-init, to nie jest przeznaczone do tego celu. Od Angular's documentation:

Jedynym odpowiednim zastosowaniem ngInit jest aliasing specjalnych właściwości ngRepeat, jak widać w poniższym demo. Poza tym przypadkiem powinieneś używać kontrolerów zamiast ngInit do inicjowania wartości w zakresie.

Będziesz chciał utworzyć niestandardowy kontroler do tego celu. Coś podobnego do:

module.controller('RenameController', function($scope) { 

    $scope.one = null; 

    $scope.$watch('feature1.items.thisItem', function(value) { 
    $scope.one = value; 
    }); 

});