我试图在指令中调用一个函数,但它没有向视图返回任何内容。
<?php
if ($file['name'] != 'user-directory' || $file['link'] != 'user'):
?>
控制器:
app.directive('eventCard', function(){
return{
restrict: 'E',
templateUrl: 'html/eventcard.html',
replace: true,
scope: {
eventObject: '=',
getHashes: '&'
}
}
});
自定义指令:
app.controller('homeController', ['$scope', function($scope){
$scope.event = {
datetime: 'FRI, 6 NOV 10:00 AM',
title: 'Event Title goes here - lalelalela',
address: {
road: '650 Address Rd',
city: 'Toronto',
state: 'Ontario',
postal: 'A1B1C3',
country: 'CA'
},
hashes: ['#hash','#hash1','#hash2']
}
$scope.allHashes = function(event){
var x = event;
var collect = '';
var link = '';
for (i = 0; x.length < i; i++) {
//remove #
link = x[i].substr(1);
collect += "<a href='#/search/" + link + "'>" + x[i] + "</a>";
}
return collect;
}
}])
指令模板:
<event-card event-object="event" get-hashes="allHashes(hashes)"></event-card>
我无法弄清楚我在这里做错了什么。我尝试了所有我想到的可能是问题的东西。
所以基本上该函数没有向自定义指令模板返回任何内容。
答案 0 :(得分:0)
你似乎没有在任何地方从指令内部调用getHashes。相反,你试图调用allHashes,这是传递给该属性的一部分。
我这样做的方法是在我的链接功能中我有这样的东西:
getHashesExp = attrs.getHashes; getHashesFn = $parse(getHashesExp); scope.doSomething = function doSomething() { getHashesFn(scope); }
然后你从模板中调用doSomething()。
请注意,我个人不会在指令属性名称中使用驼峰案例或蛇案例。我很确定它有问题。