AngularJS : How to pass data from directive to controllers function

标签 angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

我试图将指令中的一些数据传递给函数 addTrackFromPicker在我的 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',
...

在这里,我想从我的模板中调用 Controller 函数并传递它 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>

但我不知道如何将它传递到我的标签中
<youtube-list search="search" dial="addTrackFromPicker(???)"></youtube-list>
我也试过 $parent.addTrackFromPicker但它没有用

最佳答案

为了从指令中传递数据,您需要这样做:

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

然后,在您的模板中:
<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>

您可以使用除 data 之外的“参数名称”如果其他事情对您的情况更有意义。见 Angular's documentation on scope 有关其工作原理的详细信息。

关于AngularJS : How to pass data from directive to controllers function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29544385/

相关文章:

angularjs - Protractor sendKeys 不向文本框发送任何内容

php - CakePHP 3 REST API + CORS 请求和 OPTIONS 方法

javascript - 如何动态添加指令到html?

javascript - 在隐藏元素中绑定(bind)日期选择器

angularjs - ng-if,不等于?

javascript - 如何在 View 中使用 $ 等符号或 V、Amp 等单位格式化属性值的对象属性上使用 Angular 过滤器搜索?

javascript - 如何解析 Angular 或javascript中的特定对象?

javascript - Angular Directive(指令)范围不绑定(bind)数据

javascript - "myApp"应用程序中的 Angular JS 表单验证。

angularjs - 为什么不重新评估 ng-maxlength?