title: Programmatically create binding expression
body: <p>I have a scenario where an expression I wish to execute is dynamically loaded into a component. I am unable to set the expression into <code>v-if</code> as it is a literal string, not the actual binding expression.</p>
  
  <p>I had a look at using <code>vm.$watch</code> however the expressions are only allowed to be dot notation paths, rather than single javascript expressions.</p>
  
  <blockquote>
    <p><code>vm.$watch</code> usage: Watch an expression or a computed function on the Vue instance for changes. The callback gets called with the new value and the old value. The expression only accepts simple dot-delimited paths. For more complex expression, use a function instead.</p>
  </blockquote>
  
  <p>Is there some part of vuejs that I can use to achieve this? I assume that the binding expressions for the <code>v-if</code> directive etc are ultimately strings that are being parsed and evaluated in a given context, it just just whether these functions are available for use in components?</p>
  
  <p>Hopefully this example below shows a more complete picture of what I am trying to achieve:</p>
  
  <pre><code>&lt;template&gt;
      &lt;div&gt;
          &lt;div v-if="expression"&gt;&lt;/div&gt;
      &lt;/div&gt;
  &lt;/template&gt;
  
  &lt;script&gt;
    export default {
      name: 'mycomponent'
      data: function() {
        var1: 5,
        var2: 7,
        expression: null
      },
      created: function() {
        this.$http.get('...').then((response) =&gt; {
          // Sample response:
          // {
          //   'expression' : 'var1 &gt; var2'
          // }
          // TODO: Not this!!
          this.expression= response.expression;
        });
      }
    }
  &lt;/script&gt;
  </code></pre>