我的页面包含一个“下一步”链接,它可以指向某一页,也可以指向一篇文章:
<a ui-sref="page({slug: nextPage.slug}">Next</a>或
<a ui-sref="article({slug: nextArticle.slug}">Next</a>我可以通过将它转化为一个变量来概括它,但我发现很难将调用的函数泛化,并将它从article更改为page。
<a ui-sref="__method__({slug: linkSlug}">Next</a>如何传递应该调用的方法?
或者,如果我知道被调用的是什么,我可以将它作为数组方法传递(因为‘...Or’警报就可以做到这一点)。它被调用的对象是什么?如果我知道我可以:
<a ui-sref="callee[methodName]({slug: linkSlug})">Next</a>NB我尝试过使用this[methodName]({slug: linkSlug}),但它不起作用,并产生了错误:Error: Could not resolve 'this['page']' from state 'page'
发布于 2014-09-25 10:06:46
因此,答案是,您可以将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语句可以确保它们在不存在时不会引起问题。https://stackoverflow.com/questions/26035179
复制相似问题