문제

내가 만드는 탐색"트리"기본적으로 이동할 수 있는 부모하실 수 있습니다 그래서

Home > Planner > Contacts > john.smith@hotmail.com

이 목록은 그냥 일반 <ul> 는 변경된 각 시간을 변경하고 사용자를 클릭하여 상기 연결합니다.내가 사용하고 ui-routerko $stateChangeStart 이벤트를 구축하는 내 목록 링크의 문제는 나의 지시어는 없다"다시 구축"이 목록에 모든 시간 페이지가 변경됩니다.

는 방법이 있을 강제로 지시어를 다시 렌더링하는 모든 시간을 변경 상태?

TreeNav directive

app.directive('treeNav', ['$rootScope', function ($rootScope) {

        return {
            replace: true,
            restrict: 'E',
            template: '<ul>\
                    <li ng-repeat="item in treeNavs">\
                        <a ui-sref="{{ item.state }}">{{ item.name }}</a>\
                        <span> > </span>\
                    </li>\
                   </ul>',
            link: function (scope, elem, attrs) {
                scope.treeNavs = $rootScope.treeNav.reverse();

                scope.$watch('$rootScope.treeNav', function (newVal, oldVal) {
                scope.treeNavs = newVal.reverse();
                });
            }

        }

    }]);
도움이 되었습니까?

해결책

나는 당신을 믿지 않는 설정 $watch 문습니다.

당신은 또한주의해야의 사용과 .reverse. reverse() 반대 항목 배열 , 는 아마 당신이 원하는 무엇 때문에,그것을 수정하는 것에서 배열 $rootScope.

당신이 사용할 수 있는 splice() 를 만드는 새로운 복사하고 다음 역에는:

scope.treeNavs = $rootScope.treeNavs.splice().reverse();
$rootScope.$watch('treeNav', function(newVal) {
  scope.treeNavs = newVal.splice().reverse();
});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top