2013-11-22 3 views
1

난하지만 난이 내가이 데이터 (한 번로드)를 사용하는 지침을 만들려는 (아래 참조) 경로 에 의해 활성화됩니다 컨트롤러를 가지고 이 데이터를 전달하는 방법/바인딩 할 방법이 없습니다. AngularJS와

app.controller("CampaignData" , ['$scope', 'Restangular', 'CbgenRestangular', '$http', '$q', function($scope, Restangular, CbgenRestangular, $http, $q){ var campaign_call = CbgenRestangular.one('api/v1/campaign', "testcamp").get(); $q.when(campaign_call.then( function(campaign) { $scope.campaign = campaign; console.log(campaign); } )) .then(function(){ var cars = $http({method: 'GET', url:$scope.campaign.carlot}); cars.then(function(reward){ // do success things here console.log(reward.data) }, function(reward){ //do error things here }); }) }]); 

그럼 내 템플릿에 내가 이런 일을하고 싶지

{{ campaign.name }} {{ car.name }} 

또는이

<campaign="name"></campaign> 
<campaign="car.name"></campaign> 

어떻게 이런 일이

을 수행 할 수 있습니다

이 내 컨트롤러?

+2

경로를 게시 할 수 있습니까? 또는 경로가 가리키는 템플릿? 템플리트를 라우트에 지정하고 컨트롤러를 라우트에 지정하면, 컨트롤러 내에 정의 된 모든 | 위의 등록 정보를 사용할 수 있어야합니다. –

+1

"이 데이터를 사용하는 지시문을 만들지는 않습니다 **"- 오타가 되었습니까? –

+0

@Emmentaler 미안하지만 오타가 업데이트되었습니다. – Prometheus

답변

4

나는 지침을 만들 필요가 없습니다이 데이터

를 사용하는 지침을 만들려면하지 않을 것입니다. route config에서 템플릿과 컨트롤러를 선언하면 컨트롤러의 모든 범위 속성이 템플릿에서 활성화됩니다. 이 같은

보간 후 잘 작동합니다 :

<div>{{ campaign.name }}</div> 
<div>{{ car.name }}</div> 

당신이 divs 중 하나에 클릭 이벤트를 처리하고 싶다면, 그것과 같을 것이다 :

<div ng-click="myFunctionInController(campaign.name)">{{ campaign.name }}</div> 

이 함수는 것 컨트롤러에 다음과 같이 정의하십시오 :

$scope.myFunctionInController = function(name) { 

    console.log(name); 
} 
+0

wrapping element에'ng-controller' 지시자를 추가하는 것을 잊지 마십시오. –

+1

@Emmentaler 아니요, 만약 당신이 경로 설정에서 컨트롤러를 정의했다면, 당신은'ng-controller'를 추가하고 싶지 않을 것입니다. 그렇게하면 컨트롤러 인스턴스가 2 개가됩니다. –

+0

@Davin Tryon은 경로 및 컨트롤러에 대해 감사드립니다. 그래서 기술적으로 너는 내가 가지고있는 것에는 아무런 문제가 없다. 그러나 campaign.name을 '클릭'하는 것을 듣기 위해 필요한 버튼으로 만들고 싶다면 어떻게해야할까요? 이 권리에 대한 지침이 필요합니까? 만약 그렇다면 어떻게하면 (지시어와 컨트롤러) 서로에 대해 알게 될 것인가, 아니면 내 컨트롤러의 데이터를 지침에서 사용할 수 있습니까? 모든 질문에 대해 유감스럽게 생각합니다. :) – Prometheus