Angularjs 如何动态创建ui sref参数?
“我的页面”包含下一个链接,该链接可能指向页面或文章:Angularjs 如何动态创建ui sref参数?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,“我的页面”包含下一个链接,该链接可能指向页面或文章: <a ui-sref="page({slug: nextPage.slug}">Next</a> 如何传入应该调用的方法 …或者,如果我知道它被调用的对象是什么,我可以将其作为数组方法传递,因为“window”alert正好可以这样做。调用的对象是什么?如果我知道我可以使用: <a ui-sref="callee[methodName]({slug: linkSlug})">Next</a>
<a ui-sref="page({slug: nextPage.slug}">Next</a>
如何传入应该调用的方法
…或者,如果我知道它被调用的对象是什么,我可以将其作为数组方法传递,因为“window”alert正好可以这样做。调用的对象是什么?如果我知道我可以使用:
<a ui-sref="callee[methodName]({slug: linkSlug})">Next</a>
注意:我尝试过使用这个[methodName]{slug:linkSlug},但它不起作用并产生错误:错误:无法从状态“page”解析“this['page']”,因此答案是可以将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语句可以确保它们不存在时不会引起问题。
<a ui-sref="callee[methodName]({slug: linkSlug})">Next</a>
## in your controller
$scope.srefMethodAndArgs = 'page({slug: nextPage.slug})'
## in your view
<a ui-sref="{{ srefMethodAndArgs }}" ng-if="srefMethodAndArgs">Next</a>