AngularJS:如何从指令数据传递给控制器​​的功能 [英] AngularJS : How to pass data from directive to controllers function

查看:122
本文介绍了AngularJS:如何从指令数据传递给控制器​​的功能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从某些指令的数据传递到我的控制器功能 addTrackFromPicker

I'm trying to pass some data from directive into a function addTrackFromPicker in my controller.

$scope.addTrackFromPicker = function (message) {
    console.log("addTrackFromPicker", message);
};

下面是我在我的指令

dir.directive('youtubeList', function($http, $timeout, YT_event){
    return {
        restrict: 'E',
        scope: {
            search: '=',
            dial: '&'
        },
        templateUrl: 'youtube-list.html',
...

在这里,我想从我的模板调用控制器的功能,并将它传递 item.id. $ T 作为参数:

<div class="media list-group-item" ng-repeat="item in entries">
<a type="button" ng-click="dial(item.id.$t)">
    <img  ng-src="{{item.media$group.media$thumbnail[0].url}}">
</a>


但我不知道如何将它传递到我的标签

But I don't know how to pass it into my tag

&LT; YouTube的列表搜索=搜索拨号=addTrackFromPicker(???)&GT;&LT; / YouTube的-列表&gt;

我也试过 $ parent.addTrackFromPicker 但它没有工作。

I also tried $parent.addTrackFromPicker but it didnt work

非常感谢。

推荐答案

为了在你的数据传递从你的指令,你需要做的是这样的:

In order to pass in your data from your directive, you will need to do it like this:

<youtube-list search="search" dial="addTrackFromPicker(data)"></youtube-list>

然后,在你的模板:

Then, in your template:

<div class="media list-group-item" ng-repeat="item in entries">
    <a type="button" ng-click="dial({data: item.id.$t})">
        <img  ng-src="{{item.media$group.media$thumbnail[0].url}}">
    </a>
</div>

您可以使用参数名比数据的其他如果别的东西你的情况更有意义。请参阅范围角的文​​档C> ,获取有关如何工作的详细信息,

You can use an "argument name" other than data if something else makes more sense for your situation. See Angular's documentation on scope for detailed info on how this works.

这篇关于AngularJS:如何从指令数据传递给控制器​​的功能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆