如何给directive添加一个默认属性

发布于 2022-09-01 21:31:28 字数 752 浏览 9 评论 0

我自己有个指令叫做keyboard,就是键盘了,键盘上面按键分两种:数字和非数字。我想通过下面的代码,让keyboard只显示数字部分,把非数字都隐藏了。

// index.html
<keyboard onlynumber="true"></keyboard>

// directive.js
// 下面我用了@不行,用=也不行,请懂的人顺便解释下
function keyboardNumber() {
var directive = {
    restrict: 'EA',
    scope: {
      onlynumber: '='
    },
    templateUrl: 'keyboard.html',
    replace: true
  };

  return directive;
}

// keyboard.html
<div class="keyboard">
...
  <div data-ng-hide="onlynumber"></div>
...
</div>

却没能隐藏,上网搜,我也不知道搜什么关键词(真是要命),结果搜到stack overflow有个哥们情况跟我类似,虽然问题没解决,但是有个回答给了我些启发:如果你的值是不变的,那你可以只写属性

<keyboard onlynumber></keyboard>

这样写看起来更简洁好看,然而我还是不知道怎么做,聪明的你,能告诉我怎么做吗,多谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

岛歌少女 2022-09-08 21:31:28

答案提交后,发现我第一种写法是可以将true传到指令模板的,但是

<keyboard onlynumber></keyboard>

这种有人知道怎么实现吗

小苏打饼 2022-09-08 21:31:28
<keyboard onlynumber></keyboard>

这种在解析的时候会被认为是这种形式:

<keyboard onlynumber=""></keyboard>

如果你只是希望给指令配置一个默认值的话,在指令内部取onlynumber这个参数的时候设定就可以了,没必要在前面搞。

原野 2022-09-08 21:31:28
scope.onlynumber = scope.onlynumber == null ? true : scope.onlynumber;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文