여기서는 상대적으로 간단한 작업을하려고합니다. 부울 변수 인 multiExpandable을 내 지시문에 의해 생성 된 재귀 트리로 전달합니다. 변수는 나중에 내 서비스에 의해 평가됩니다. 내 서비스에서는 어떤 이유로 든 정의되지 않은 상태로 되돌아옵니다.부울 값이 전달되지 않습니다.
왜 이것이이 일을 저에게하고 있는지 잘 모르겠습니다. 응용 프로그램 변수는 문자열 객체를 사용하며 문자 그대로 같은 것을 수행하며 절대적으로 좋습니다. 내 코드는 아래에 있습니다. 중요한 점을 간단히 보여주기 위해 많은 내용이 다듬어졌습니다. 왜 이런 일이 일어나는 걸까요?
내 지시어 :
.directive("navigation", function() {
return {
restrict: 'E',
replace: true,
scope: {
menu: '=',
multiExpandable: '=',
application: '=',
},
controller: function($scope) {
$scope.toggleExpand = NavigationService.toggleExpand;
},
...
}
내 템플릿 :
<ul style="list-style: none">
<li ng-repeat="node in menu.Folders">
{{multiExpandable}}
<i class="fa" ng-click="toggleExpand(node, application, menu, multiExpandable)"></i>
<navigation menu="node" application="application" multiExpandable="multiExpandable" ng-show="node.expanded == true"></navigation>
</li>
</ul>
지시어라고 :
<navigation class="nav tree" menu="applications[currentApplication].Menu" application="currentApplication" multiExpandable="expandable"></navigation>
그리고 서비스의 값이 (콘솔 로그 문이 반환 정의되지 않음) :
_toggleExpand = function (application, multiExpandable) {
//some code
console.log("in TOGGLE EXPAND - multiExpandable:");
console.log(multiExpandable);
//some code
}
몇 가지 질문 : 먼저, 질문의 맨 위에있는 코드가 어떤 지시어를 속하는가하는? 둘째, 전반적으로 달성하려는 것은 무엇입니까? –
전반적으로 다른 확장 된 폴더의 동작을 지정하기 위해 multiExpandable 값이 true (폴더가 확장 될 때마다)인지 여부를 확인하려고합니다. 한 번에 하나의 폴더를 만들거나 확장 가능한 트리를 만듭니다. – AKon