22avalon - 指令ms-if(if绑定)

简介: 22avalon - 指令ms-if(if绑定)

通过属性值决定是否渲染目标元素, 为否时原位置上变成一个注释节点。

代码

<body :controller="test">
    <script>
      var vm = avalon.define({
        $id: "test",
        aaa: "这是被隐藏的内容"
        toggle: false
      })
    </script>
    <p><button type="button" :click='@toggle = !@toggle'>点我</span></button></p>
    <div :if="@toggle">{{@aaa}}</div>
</body>

注意,有许多人喜欢用ms-if做非空处理,这是不对的,因此ms-if只是决定它是否插入DOM树与否,ms-if里面的 ms-指令还是会执行;

正确的做法是,当你知道这里面有非空判定,需要用方法包起来;

avalon.define({
  $id: 'test',
  aaa: {},
  show: function(aaa, bbb, ccc){
     var obj = aaa[bbb]
     if(obj){
        return obj[ccc]
     }
     return ''
  }
})
<div ms-controller="test">
   <div ms-if="@aaa.bbb">
     {{@show(@aaa, 'bbb', 'ccc')}}
   </div>
</div>
目录
相关文章
16avalon - 指令ms-attr(属性绑定)
16avalon - 指令ms-attr(属性绑定)
73 1
|
JavaScript
24avalon - 指令ms-for(循环绑定)
24avalon - 指令ms-for(循环绑定)
57 0
13avalon - 指令ms-skip (skip绑定)
13avalon - 指令ms-skip (skip绑定)
52 0
20avalon - 指令ms-active(active绑定)
20avalon - 指令ms-active(active绑定)
48 0
19avalon - 指令ms-class(类名绑定)
19avalon - 指令ms-class(类名绑定)
68 0
|
前端开发 JavaScript
34avalon - 指令ms-effect(动画绑定)
34avalon - 指令ms-effect(动画绑定)
48 0
33avalon - 指令ms-validate(验证绑定)
33avalon - 指令ms-validate(验证绑定)
52 0
|
JavaScript
31avalon - 指令ms-rules(验证规则绑定)
31avalon - 指令ms-rules(验证规则绑定)
51 0
14avalon - 指令ms-controller (controller绑定)
14avalon - 指令ms-controller (controller绑定)
60 0
28avalon - 指令ms-duplex(数据格式化)
28avalon - 指令ms-duplex(数据格式化)
58 0