2013-08-30 2 views
0

나는 다음 한 컨트롤러 선언 : 나는 어딘가에 내 템플릿에 내가 다음 코드 때문에이 선언이 필요Angularjs. 컨트롤러의 범위를 가져옵니다. index.html을 페이지에서 알 수없는 공급자 오류

<div ng-controller="UserDataController"/> 

(나는 그것이 나쁜 스타일을 알고,하지만 ...) :

<script> 

    var userData = angular.element('[ng-controller=UserDataController]').scope().userData; 
... 
</script> 

그러나 동시에 나는 자원 (REST)와 함께 일하고 있어요이 one에 비슷한 코드를

. 어떤 내 경우 오류가 발생합니다 : 알 수없는 제공자를 : dataProvider의 < - 데이터처럼 내 컨트롤러가 보이기 때문에 :이 때문에 NG 컨트롤러 선언의 것을 here 읽은

function UserDataController($scope,data) 
{ 
    $scope.userData = data; 
} 

. 물론이 선언을 제거하면 템플릿의 스크립트 태그 사이의 코드 부분이 손상됩니다. 그래서 논란의 여지가있는 상황에 있습니다. 한 가지를 고치면 다른 것이 깨졌습니다.

저는 js와 jquery에는 강하지 않지만 가장 쉬운 방법은 다음과 같은 컨트롤러 범위를 얻는 것입니다. 이 선택기 '[ng-controller = UserDataController]'. 어떻게 할 수 있습니까? 올바른 접근 방법입니까?

미리 감사드립니다.

답변

0

userData 개체에 모두 액세스하려고하고 있다고 생각합니다. userData 개체에 액세스하려면 컨트롤러 범위 내에있는 페이지 어딘가에 {{userData}}을 입력하기 만하면됩니다. 다음 예를

<div ng-app> 
    <div ng-controller="UserDataController"> 
     <input type="text" ng-model="userData" /> 
     <div ng-model="userData">User data is: {{userData}}</div> 
    </div> 
</div> 

과 JS

function UserDataController($scope) 
{ 
    $scope.userData = ''; 
} 

확인이 바이올린의 경우 : http://jsfiddle.net/N4MQ4/2/

+0

고마워요, Ronnie! angularjs 내에서 kendo-ui를 사용하고 있으며 컨트롤 용 데이터 소스를 준비해야하므로 컨트롤 범위를 가져야합니다. treeview 컨트롤 내에 각도 각검 프레임 워크와 관련된 몇 가지 문제가 있으므로 임시 해결책입니다. – Sharov

0

오류 :

Unknown provider: dataProvider <- data.... 

당신의 각도 의존성 주입을 사용하려는 것을 의미한다 당신을 위해 데이터 매개 변수를 주입 할 수 있습니다. 이 오류로 인해 데이터 용으로 구성된 공급자가 없다고 추측합니다. 따라서 오류가 표시됩니다. 로니처럼, 당신이하는 방식대로하는 이유가 조금 이상해 보입니다

관련 문제