2014-09-26 3 views
1

Есть ли способ запустить вычисляемое свойство с аргументом? Довольно много вычисленная функция.Можно ли вычислить функцию в RactiveJS?

JS код

computed: { 
      IsShapeToolSelected: function (toolId) { 
       return toolId == this.get("QueryTool.QueryByShapeTool") ? "selected-tool" : ""; 
      } 
      } 

Html

<button on-click='draw: {{0}}' type="button" class="btn btn-default {{IsShapeToolSelected(0)}}"> 
    <span style="font-size:18px;">&#9679;</span> 
    <br /> 
    <span>point</span> 
</button> 
<button on-click='draw: {{1}}' type="button" class="btn btn-default {{IsShapeToolSelected(1)}}"> 
    <img src="Content/imgs/idv.MapTools_Reports/line-24x24.png" /> 
    <br /> 
    <span>line</span> 
</button> 

ответ

2

Есть ли способ запустить вычисляемый свойство с аргументом?

Нет, но есть и другие решения для вашей проблемы:

computed: { 
    IsShapeToolSelected: function() { 
     return (function (toolId) { 
      return toolId == this.get("QueryTool.QueryByShapeTool") ? "selected-tool" : ""; 
     }).bind(this); 
    } 
} 

или

data: { 
    IsShapeToolSelected: function (toolId) { 
     return toolId == this.get("QueryTool.QueryByShapeTool") ? "selected-tool" : ""; 
    } 
} 

или

computed: { 
    // use IsShapeToolSelected.1 instead of IsShapeToolSelected(1) 
    IsShapeToolSelected: function() { 
     var obj = {}; 
     obj[this.get("QueryTool.QueryByShapeTool")] = "selected-tool"; 
     return obj; 
    } 
} 
+0

приятно! первый прибил его. –

Смежные вопросы