我希望能够基于一系列说出的角色名来显示或隐藏某些DOM元素.问题是我想检查html中的角色或角色.
就像是:
<div data-bind="if: isInRole('Admin', 'Editor')">
Run Code Online (Sandbox Code Playgroud)
要么
<div data-bind="if: isInRole(['Admin', 'Editor'])">
Run Code Online (Sandbox Code Playgroud)
以上解决方案似乎对我不起作用.有什么建议/选择吗?
@nemesv发表评论:您的问题中可能没有显示错误或问题.尽管如此,这里的设置可以帮助您找到并修复您遇到的错误.
您的方法签名IsInRole与输入参数不一致,输入参数是一组角色.如果你改变它IsInAnyRole可能会变得更清楚,这样的事情应该工作得很好:
<div data-bind="if: isInAnyRole(['admin', 'editor'])">Protected div!</div>
Run Code Online (Sandbox Code Playgroud)
使用以下视图模型:
var vm = function() {
var self = this;
self.roles = ko.observableArray(["editor", "user"]);
self.isInAnyRole = function(targetRoles) {
return targetRoles.some(function(el) { return self.roles().indexOf(el) !== -1; });
}
};
Run Code Online (Sandbox Code Playgroud)
您可以查看这个小提琴,以获得上述演示.如果将视图模型的角色更改为"编辑器"或"管理员"以外的其他内容,则消息将消失.
| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |