2014-10-21 4 views
1

나는이 내 컨트롤러와 지시어 인 AngularJS와 지시어와 ngRepeatAngularJS와 ngrepeat 및 지침

사용하여 메뉴를 그릴려고 :

angular.module('root', []) 
    .controller('sideMenu', ['$scope', function($scope) { 
    $scope.menuItems = [ 
     { name: 'TRACTION', id: 1 }, 
     { name: 'CONVERSION', id: 2 }, 
     { name: 'FINANCIALS', id: 3 }, 
     { name: 'USAGE', id: 4 } 
    ]; 
    }]) 
    .directive('menuItem', function() { 
    return { 
     restrict: 'E', 
     scope: { 
     item: '=' 
     }, 
     templateUrl: 'elements/sidebar.html' 
    }; 
    }); 

요소/sidebar.html을

<a href="#{{item.name}}">{{item.name}}</a> 

index.html

<div class="leftSide" ng-controller="sideMenu"> 
    <ul> 
    <li ng-repeat="item in menuItems"> 
     <menu-item item="{{item.name}}"></menu-item> 
    </li> 
    </ul> 
</div> 

이 순간에는 아무 것도 표시되지 않고개의 요소를 만들어 ng-repeat가 작동하지만 명령이 작동하지 않습니다.

각 메뉴 항목을 나열하고 별도의 $scope 항목이 있어야했던 ng-repeat를 사용하기 전에 배열의 모든 요소를 ​​이동하여 ngRepeat으로 반복하고 싶었습니다.

답변

2

변경 item="{{item.name}}"

item="item.name"에 당신은 = "항목은"`

+0

bi-directional reference가 실제로했던 아이템 '로 변경 이후 그것을 필요 없어요. 이제 작동합니다. 고마워요. AngularJS에서이 작업을 수행하는 '올바른'방법이 있습니까? –

+1

그것은 나에게 그것을하는 가장 _correct_ 방법 인 것처럼 보인다. –