angular.js - angularjs中directive的ng-click为什么不能传递参数

【字号: 日期:2022-12-23浏览:18作者:雯心

问题描述

首先定义一个directive:

app.directive(’conversation’, [function() { return {restrict: ’E’,templateUrl: ’conversation.html?date’ + new Date().getTime(),replace: true,scope:{ conversations:'=', changeConversation: '&'},link:function(scope, element, attributes){} };}]);

调用

<conversation conversations='conversations' change-conversation='changeConversation(conversation)'></conversation><ul class='mdui-list'> <li ng-repeat='conversation in conversations' ng-click='changeConversation(conversation)'><p class='mdui-list-item-avatar'> <img ng-src='https://www.6hehe.com/wenda/{{conversation.chatThumbLogo}}'/></p><p class='mdui-list-item-content'> <p class='mdui-list-item-title'>{{conversation.chatName}}</p> <!--<p class='mdui-list-item-text mdui-list-item-one-line'>hello world</p>--> <span ng-bind='conversation.unreadCount' ng-if='conversation.unreadCount > 0'></span></p> </li> <li class='mdui-pider-inset mdui-m-y-0'></li></ul>

ng-click触发函数后不能打印conversation,undefined。

$scope.changeConversation = function (conversation) {console.log(conversation); }

问题解答

回答1:

$scope.changeConversation = function (conversation);

这里是parent的scope,你parent的scope里并没有conversation这个变量。

回答2:

我也觉着是@熊丸子说的那样,conversation这个变量不是父级的

回答3:

conversation 这个directive restrict: ’E’, 是element ,你没有在template中引用

相关文章: