WeX5数据绑定02:visible绑定

优质
小牛编辑
131浏览
2023-12-01

visible绑定(bind-visible)可以绑定可监控对象来动态控制元素是否在页面中显示。bind-visible也可以绑定复杂的表达式来控制元素是否显示。

基本使用

html源码

  <div bind-visible="shouldShowMessage">
	 当"shouldShowMessage"为 true时,才能看到这段消息
  </div>
  <button component="$UI/system/components/justep/button/button"
  	class="btn btn-warning"
  	bind-click="buttonClick">点我切换
  </button>

 

js源码

	var Model = function(){
		this.callParent();
		this.shouldShowMessage = justep.Bind.observable(true);
	};

	Model.prototype.buttonClick = function(event){
       this.shouldShowMessage.set(!this.shouldShowMessage.get());
	};

这段代码展示了bind-visible的用法。将上述代码贴到页面运行起来,点击按钮可切换文字的显示和隐藏。

visible绑定规则:通过绑定元素的style.display来控制元素显示。当绑定对象的值为true、不为空的对象、数组的时候,元素的style.display样式会被移除,从而使元素显示;当参数为false、null、undefined、 数字0、空字符串的时候,将会为元素添加样式style.display:none,从而将元素隐藏。

如果绑定的是监视属性,那么当属性改变的时候界面也会发生改变。

visible绑定表达式

还可以为visible绑定表达式,例如:

js源码

	var Model = function(){
		this.callParent();
        this.myValues = justep.Bind.observableArray([]);
	};

	Model.prototype.buttonClick = function(event){
		if(this.myValues.get().length > 0){
			this.myValues.removeAll();
		}
		else{
			this.myValues.push('some value');
		}
	};

上面js代码创建了一个可监控数组对象。buttonClick事件根据可监控数组对象的长度来执行清空数组或向数组增加一项。关于可监控数组对象后面文章会详细介绍。

html源码

  <div bind-visible="myValues.get().length > 0">
	 当"myValues"数组值得长度大于0,才能看到这段消息
  </div>
  <button component="$UI/system/components/justep/button/button"
  	class="btn btn-warning"
  	bind-click="buttonClick">点我切换
  </button>

在上面的代码中,visible绑定的是一个表达式。当myValues的长度发生变化时,visible会被重新计算并设置。

bind-visible=”myValues.get().length > 0″ 这个绑定表示如果myValues的长度大于0,就显示元素div,否则就隐藏。