2016-07-13 3 views
1

存在しないものに「取得」を使用するバインディングの式がある場合、関数 'myFunction'は計算されません。エラーはスローされません(これは残念ですが)、少なくともこのコンポーネントをバインドするコンポーネントには何も表示されません。本当に奇妙である何ExtJSバインディングはコメントアウトされたコードを無視しますか?

Ext.define('MyModel', { 
    extend: 'Ext.app.ViewModel', 


    formulas: { 

     myFunction: function(get) { 

      var fdn = get('fullDisplayName') ? get('fullDisplayName'): ""; 

      var code = get('this.is.something.that.does.not.exist') ? get('this.is.something.that.does.not.exist'): ""; 

      return fdn + code; 
     }, 

     fullDisplayName: function(get) { 
      var title = get('ref_mainApplicantTitle.selection.text') ? get('ref_mainApplicantTitle.selection.text') : ""; 
      var fName = get('tsk_forCase_mainApplicant_fname0') ? get('tsk_forCase_mainApplicant_fname0') : ""; 
      var lName = get('tsk_forCase_mainApplicant_lname0') ? get('tsk_forCase_mainApplicant_lname0') : ""; 

      return ("" + title + " " + fName + " " + lName + "").trim(); 
     }, 

は、私は非existant結合を「取得」行をコメントアウトした場合、私はコメントでコードを変更した場合、それはまだ

myFunction: function(get) { 

    var fdn = get('fullDisplayName') ? get('fullDisplayName'): ""; 

    //var code = get('this.is.something.that.does.not.exist') ? get('this.is.something.that.does.not.exist'): ""; 

    return fdn + code; 
}, 

動作しない、ということですアウトコードが存在するバインディングには、すべて正常に動作します!

myFunction: function(get) { 

    var fdn = get('fullDisplayName') ? get('fullDisplayName'): ""; 

    //var code = get('fullDisplayName') ? get('fullDisplayName'): ""; 

    return fdn + code; 
}, 

なぜ私のコメントアウトされたコードは無視されますか?

私はこれをSenchaにバグとして提出することを考えていますが、明らかに何かが不足しているため、そこにそれを投げ捨てると思っていました。

+0

.. .. –

答えて

3

動作を理解するために、parseFormulaのコードを見ることができます(式の文字列を解析します)。

私はあなたが明示的のようなバインディングを定義勧め:あなたは存在しない結合をコメントアウトするとき、 `` code``は現在定義されていないので、私はまだそれが動作しないように期待し、まあ

myFunction: { 
    bind: { 
    fullDisplayName: '{fullDisplayName}', 
    //foo: '{this.is.something.that.does.not.exist}' 
    }, 
    get: function(data) { 

    var fdn = data.fullDisplayName ? data.fullDisplayName : ""; 

    //var code = data.foo ? data.foo : ""; 

    return fdn + code; 
    } 
} 
+0

ああ、Senchaは機能内容の文字列解析機能でコメントを忘れてしまった。 – Alexander

+1

ところで、それは、関数内容文字列解析関数を関数内容文字列解析関数に入れるとどうなるのだろうかと思います。 – Alexander

関連する問題