我的页面包含“下一个”链接,该链接可能指向某个页面或可能指向文章:
<a ui-sref="page({slug: nextPage.slug}">Next</a>
或
<a ui-sref="article({slug: nextArticle.slug}">Next</a>
我可以通过把它变成一个变量来概括slug但是我发现很难概括被调用的函数并将它从article
改为page
:
<a ui-sref="__method__({slug: linkSlug}">Next</a>
如何传入应该调用的方法?
...或者,如果我知道它的被叫是什么,我可以将它作为一个数组方法传递(因为`window'alert'就是这样做的)。被召唤的对象是什么?如果我知道我可以使用:
<a ui-sref="callee[methodName]({slug: linkSlug})">Next</a>
NB 我尝试过使用this[methodName]({slug: linkSlug})
但它不起作用并产生错误:Error: Could not resolve 'this['page']' from state 'page'
答案 0 :(得分:0)
所以答案结果是你可以将ui-sref
参数作为字符串传递。
## in your controller
$scope.srefMethodAndArgs = 'page({slug: nextPage.slug})'
## in your view
<a ui-sref="{{ srefMethodAndArgs }}" ng-if="srefMethodAndArgs">Next</a>
然而,有几件事要关注这个
{{ }}
ui-sref
将抛出错误。因此,如果将它们动态加载到页面中,则添加ng-if
语句可确保它们在不存在时不会导致问题。