Javascript Angularjs如何将数据从控制器传递到指令

Javascript Angularjs如何将数据从控制器传递到指令,javascript,angularjs,Javascript,Angularjs,我有一个被路由激活的控制器(见下文)。我想创建一个使用此数据的指令(一旦加载),但我不知道如何传递/绑定此数据 这是我的控制器: app.controller("CampaignData" , ['$scope', 'Restangular', 'CbgenRestangular', '$http', '$q', function($scope, Restangular, CbgenRestangular, $http, $q){ var campaign_call =

我有一个被路由激活的控制器(见下文)。我想创建一个使用此数据的指令(一旦加载),但我不知道如何传递/绑定此数据

这是我的控制器:

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>

如何做到这一点

我不想创建使用此数据的指令

不需要创建指令。在route config中声明模板和控制器后,控制器中的所有作用域属性都将对模板处于活动状态

这样的插值应该可以很好地工作:

<div>{{ campaign.name }}</div>
<div>{{ car.name }}</div>
然后在控制器中定义此函数,如下所示:

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

    console.log(name);
}
我不想创建使用此数据的指令

不需要创建指令。在route config中声明模板和控制器后,控制器中的所有作用域属性都将对模板处于活动状态

这样的插值应该可以很好地工作:

<div>{{ campaign.name }}</div>
<div>{{ car.name }}</div>
然后在控制器中定义此函数,如下所示:

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

    console.log(name);
}

你能告诉我路线吗?或者路由所指向的模板?将模板分配给路由并将控制器分配给路由后,您应该能够使用控制器中定义的任何作用域属性。“我不想创建使用此数据的指令”@Emmentaler抱歉,键入了更新的问题。您可以发布路由吗?或者路由所指向的模板?将模板分配给路由并将控制器分配给路由后,您应该能够使用控制器中定义的任何作用域属性。“我不想创建使用此数据的指令”@Emmentaler抱歉,键入更新的问题。不要忘记将
ng controller
指令添加到包装元素。@Emmentaler否,如果在路由配置中定义了控制器,则不希望添加
ng控制器
。如果这样做,您将得到2个控制器实例。@Davin Tryon这对路由和控制器很有意义,谢谢。那么从技术上说,我所拥有的一切都没有错?但是,如果我想做一个活动,那该怎么办呢。这个权利需要一个指令吗?如果是这样的话,他们(指令和控制器)如何相互了解,或者指令可以使用来自控制器的数据?很抱歉,所有的问题都是为了解释清楚。:)@您确实需要一个指令,但不需要创建自定义指令。如果要处理单击,可以使用angular
ng click
指令并提供要调用的控制器函数。不要忘记将
ng controller
指令添加到包装元素。@Emmentaler否,如果在路由配置中定义了控制器,则不想添加
ng控制器
。如果这样做,您将得到2个控制器实例。@Davin Tryon这对路由和控制器很有意义,谢谢。那么从技术上说,我所拥有的一切都没有错?但是,如果我想做一个活动,那该怎么办呢。这个权利需要一个指令吗?如果是这样的话,他们(指令和控制器)如何相互了解,或者指令可以使用来自控制器的数据?很抱歉,所有的问题都是为了解释清楚。:)@您确实需要一个指令,但不需要创建自定义指令。如果要处理单击,可以使用angular
ng click
指令并提供一个控制器函数来调用。