是否可以直接从模板中的表达式访问服务,例如在ngClick内?我并不认为这是可能的,但Angular材料的菜单演示似乎注入了自定义服务$mdOpenMenu
,就像在表达式中注入$ event一样简单:https://material.angularjs.org/latest/demo/menu
答案 0 :(得分:0)
正如您在source for the menu controller中看到的那样,菜单指令会导致function displayTreeview($cats,$depth=0)
{
//if($depth==0){echo '<ul>';}
$stringBuilder = "";
foreach($cats as $cat)
{
$hasChildren=count($cat['children'])>0;
$class = $hasChildren?' class="menu-item-has-children"':'';
$stringBuilder .= '<li'.$class.' data-children="'.count($cat['children']).'">'.$cat['name'];
if($hasChildren){$stringBuilder .='<ul class="dropdown-menu sub-menu">';displayTreeview($cat['children'],$depth+1);$stringBuilder .= '</ul>';}
$stringBuilder .= '</li>';
}
//if($depth==0){echo '</ul>';}
return $stringBuilder ;
}
被分配到该指令中的标记范围,因此$mdOpenMenu
在标记中可用,并且可以传递给函数。它不是传统角度意义上的服务。这只是指令控制器添加到范围内的功能。