2014-12-17 10 views
5

, benim denetleyicisi gibi bir şey denir belirli bir değeri kullanıyorum:Görünümdeki Açısal değişkeni yeniden adlandırmanın bir yolu var mı? Benim Açısal projede

$scope.feature1.items.thisItem

Orada thisItem defalarca kullanır Bence belli bir <div> ve o atıfta olmak oldukça dağınık örneğin {{feature1.items.thisItem}} olarak kendisine:

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

görünümde bu değişkeni adlandırmak için herhangi bir yolu var mı? Sadece one olarak adlandırmak istiyorum. Ben {{feature1.items.thisItem as one}} denedim ama bu işe yaramadı. Başka fikirlerin var mı?

cevap

7

Evet üstünde ng-init kullanabilirsiniz! ng-init bu çok amaç için tasarlanmıştır - başka bir değişken aliasing:

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

Angular 2 + 'da üzgün bir şekilde kaldırılmış gibi görünüyor. – Casebash

2

Evet size DOM öğesinin

<div ng-app='app'> 
    <div ng-controller="MyController" ng-init="myVar=feature1.items.thisItem"> 
     {{myVar}} 
    </div> 
</div> 
3
Ben ng-init kullanılmamasını tavsiye ediyorum

, bu amaçla tasarlanmış değil. Angular's documentation Gönderen: Aşağıdaki demo görüldüğü gibi

ngInit sadece uygun kullanımı ngRepeat özel özelliklerini aliasing içindir. Bu durumda, kapsamdaki değerleri başlatmak için ngInit yerine denetleyicileri kullanmalısınız.

Bu amaç için özel bir denetleyici oluşturmak istersiniz. Aşağıdakine benzer bir şey:

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

    $scope.one = null; 

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

});