在使用 ngRepeat 时,我有一个从数组中加载四个项目的无序列表。列表项中的锚标记在 ngClick 属性中具有触发消息的功能。像这样使用时,函数调用效果很好:
<ul>
<li ng-repeat="n in supsNames">
<a ng-click="myAlert(n.name)">{{n.name}}</a>
</li>
</ul>
我创建了一个简单的指令,用于插入带有列表项的无序列表。该列表加载得很好,但我之前提到的相同功能没有启动。代码如下:
<div list items="supsNames">
<a ng-click="myAlert({{item.name}})">{{item.name}}</a>
</div>
这是我的 javascript 和 angularjs 代码:
var app = angular.module('myapp', []);
app.controller('myCtrl', function($scope) {
$scope.title = 'ngClick within ngTransclude';
$scope.supsNames = [
{"name" : "Superman"},
{"name" : "Batman"},
{"name" : "Aquaman"},
{"name" : "Flash"}
];
$scope.myAlert = function(name) {
alert('Hello ' + name + '!');
};
});
app.directive('list', function() {
return {
restrict: 'A',
scope: {
items: '='
},
templateUrl: 'list.html',
transclude: true,
link: function(scope, element, attrs, controller) {
console.log(scope);
}
};
});
我也有一个 plnkr,以防你想看看我试图做什么: http ://plnkr.co/edit/ycaAUMggKZEsWaYjeSO9?p=preview
谢谢你的帮助。