我希望在将value
绑定到函数时传递其他属性。目前它确实作为单向绑定工作(设置值),但我也想在更新时设置属性。
HTML代码片段:
<div data-bind="with: selectedProfile">
<!-- ko foreach: Components -->
<div class="row form-group">
<!-- ko foreach: Variables -->
<div class="row form-group">
<input type="text" data-bind="value: $root.overridenValue(VariableId)"/>
<!--I'd like something like: $root.overridenValue(value, VariableId)-->
</div>
<!-- /ko -->
</div>
<!-- /ko -->
</div>
JS代码片段:
self.overridenValue = function (variableId /*, value*/) {
var variable = _.find(self.selectedProfile.Variables(), function(p) { return p.VariableId() === variableId() });
//if value passed, then set the required property
return variable ? variable.Value : null;
};
有没有办法实现这个目标?
答案 0 :(得分:0)
找到答案。
可以将$element.value
传递给绑定:
<input type="text" data-bind="value: $root.overridenValue($element.value, VariableId)"/>
然而考虑一下(并且由于评论),我最初采用的方法似乎过于复杂。更清洁的是改变模型的标准化。