是否有可能在RactiveJS中具有计算功能?

时间:2014-09-26 14:56:47

标签: javascript 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>

1 个答案:

答案 0 :(得分: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;
    }
}