2014-12-17 7 views
5

Nel mio progetto angolare, sto usando un particolare valore che nel mio controller si chiama qualcosa come:C'è un modo per rinominare una variabile Angolare nella vista?

$scope.feature1.items.thisItem

C'è un particolare <div> a mio avviso che utilizza thisItem molte volte ed è piuttosto confusa per essere riferimento ad esso come ad esempio {{feature1.items.thisItem}}:

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

esiste un modo per rinominare questa variabile nella vista? Mi piacerebbe chiamarlo semplicemente one. Ho provato {{feature1.items.thisItem as one}} ma non ha funzionato. Altre idee?

risposta

7

Sì! ng-init è stato progettato per questo scopo - aliasing un'altra variabile:

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

Purtroppo ng-init sembra essere stato rimosso in Angular 2+ – Casebash

2

Sì, è possibile utilizzare ng-init sulla parte superiore del vostro elemento DOM

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

Vorrei consigliare di non utilizzare ng-init, non è progettato per questo scopo. Da Angular's documentation:

L'unico uso appropriato di ngInit è per aliasing proprietà speciali di ngRepeat, come si è visto nella demo di seguito. Oltre a questo caso, è necessario utilizzare i controller anziché ngInit per inizializzare i valori su un ambito.

Vorrete creare un controller personalizzato per questo scopo. Qualcosa come il seguente:

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

    $scope.one = null; 

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

}); 
Problemi correlati