将属性绑定到变量(我猜是单向绑定)

时间:2016-12-22 16:22:50

标签: extjs extjs5

我打电话给商店。在load监听器上,我需要测试一条记录,然后将一个布尔值发送到一个变量,将readOnly设置为我的字段。

我不知道如何更改我的viewmodel数据中的变量。我默认放置

readOnly : {
            value : true
        }

在我的虚拟机中。我使用bind属性在我的组件中捕获它:

bind: {
        readOnly: '{readOnly.value}'
   }

然后......我不知道..我想在变量 readOnly 中写入布尔值,然后在我的ViewModel上捕获它,如下所示:

/ *可变文件* /

Ext.define('routing.utils.Vars', {
    alternateClassName: 'gv',
    readOnly : false
});

/ *商店文件* /

[...]

listeners: {
        load : function(store,record){
            if(a = b) {
              gv.readOnly = true;
            }
           else {
              gv.readOnly = false;
           }
        }
    }

 [...]

/ * ViewModel文件* /

formulas: {
   readOnly: {
      get: function(get){
           return gv.readOnly;
      }
   }
}

购买我的readOnly不会改变...如何绑定变量呢?

1 个答案:

答案 0 :(得分:2)

您可以使用viewmodel上的set方法在viewmodel数据属性上设置属性。

yourViewModel.set('readOnly',{
  value:newValue
});

您可以使用以下方法从viewController获取ViewModel:

viewController.getViewModel();

Have a look here了解如何使用属性绑定