我需要传递一个表达式,该表达式将在父指令属性的指令模板中进行评估。
在这种情况下,它会是这样的。我的“表达式”属性将映射到我的模板锚点ngHref属性,而不会由父级进行任何评估。
以下是我想要做的一个例子。
<div data-my-directive data-expression="'#/inventory/{{page}}'"> </div>
HTML模板(指令模板)
<ul>
<li data-ng-repeat="page in pageNumberCol">
<a data-ng-href="{{expression}}">Page {{page}}</a>
</li>
</ul>
指令声明
app.directive('myDirective', function () {
return {
restrict: "A",
templateUrl: "/app/directivelayout/myDirectiveTemplate.html"
, scope: {
expression: "=?" // What binding do i do here???? @ & or =
}
} });
RENDERED HTML
<ul>
<li><a href="#/inventory/1"> page1 </a> </li>
<li><a href="#/inventory/2"> page2 </a> </li>
<li><a href="#/inventory/3"> page3 </a> </li>
</ul>
更新:我已经找到了一个解决方案,但我不太喜欢,所以如果你有什么东西给我,我仍然愿意接受另一种解决方案。
而不是表达式,我传入一个接收页码并返回生成的链接的函数。
所以在我的模板锚中我会做这样的事情。
<li data-ng-repeat="page in pageNumColl >
<a data-ng-href="{{generateLink(page)}}" > Page {{page }} </a>
</li>
答案 0 :(得分:1)
你可以稍微设置一下你的传球
<div data-my-directive exp="'#/inventory/' + page"> </div>
然后在指令
中 scope: {
exp: "=",
},
我创建了一个fiddle基本上就是这个,它为你提供输出:
<a href="test/1" exp="'test/' + page" class="ng-isolate-scope ng-binding">test/1</a>
希望这有帮助!