2015-01-20 2 views
0

방정식 태그를 만들고 label 속성을 사용하여 사용할 방정식을 찾고 싶습니다. 내가 방정식 태그를 사용하려고하면,AngularJS 지시문 : HTML 속성을 문자열로 가져 와서 사전 키로 사용합니다.

<equation label="mainresult"></equation> 

I를

<body ng-controller="DocumentController as doc"> 
    <div> 
     {{ doc.equations[label].body }} 
    </div> 
</body> 

그러나 :

(function(){ 
    var app = angular.module('mathDocument', []); 

    app.directive('equation', function(){ 
     return { 
      restrict: 'E', 
      scope: { 
       label: '@label'}, 
      templateUrl: 'eqnElement.html', 
     }; 
    }); 

    app.controller("DocumentController", function(){ 
     this.equations = { 
       "mainresult": { labeled: true, 
           label: 'mainresult', 
           body: 'e^{i\\pi} = -1', 
           } 
     }; 
    }); 
})(); 

그리고 eqnElement.html에서 템플릿 : 그 끝으로 나는 다음과 같은 응용 프로그램을 결국 아무것도 얻지 못해. {{ label }}을 대신 사용하면 mainresult이 템플릿의 출력으로 보입니다.

내가 읽은 바로는 분리 된 스코프의 사용법이 컨트롤러에서 심하게 발생하고 문제가 될 수 있지만 디버거가 도움이된다는 것을 알려주는 데 어려움을 겪고 있습니다. 이 작업을 수행 할 수있는 방법이 있습니까? 아니면이를 다르게 설계해야합니까?

답변

1

, 당신은 그들에 액세스 할 수 있습니다

<div> 
    {{ equations[label].body }} 
</div> 
+0

예제를 시도했지만 작동하지 않았습니까? 내가 믿는 모든 세 파일을 올바르게 수정했다. –

+0

'ng-app' 속성이'html' 또는'body' 태그에 있다고 가정하고 페이지의 어딘가에'app.run()'을 호출하고 있습니까? – rwacarter

+0

나는 그 속성을'html' 태그에 가지고 있습니다, 그렇습니다. 나는'app.run()'을 호출하지 않았지만 그렇게하기위한 스크립트를 추가했고 여전히 주사위를 추가하지 않았다. 저는 각도 1.3.9와 파이썬의 간단한 웹 서버를 사용하여이를 테스트하고 있습니다. 문제가 생길 수 있습니까? –

0

지시문의 범위에 doc을 바인딩하지 않았습니다. 수식 서비스를 주입하고 범위 내에서 doc이라고 부르면 작동합니다.

(function(){ 
    var app = angular.module('mathDocument', []); 

    app.directive('equation', function(){ 
     return { 
      restrict: 'E', 
      scope: { 
       label: '@label', 
       equations: '=' 
      }, 
      templateUrl: 'eqnElement.html', 
     }; 
    }); 

    app.controller("DocumentController", function($scope){ 
     $scope.equations = { 
       "mainresult": { labeled: true, 
           label: 'mainresult', 
           body: 'e^{i\\pi} = -1', 
           } 
     }; 
    }); 
})(); 

지시어 전화 :

<equation equations="equations" label="mainresult"></equation> 

및 eqnEquation.html : 당신이뿐만 아니라 지침의 범위에 equations에 전달하면

+0

나는 그걸 어떻게 할 것인지 약간 혼란 스럽다. 당신은 정교 할 수 있습니까? –

관련 문제