使用函数调用敲除数据绑定

时间:2018-05-04 13:06:37

标签: knockout.js

我正在尝试在数据绑定中调用函数,但似乎没有任何工作。

以下是我的情景:

function ViewModel() {

  this.Products = ko.observableArray([]);

  this.FormatUrl = function (url) {
     ...
     return ...
  }
}

用法:

<tbody data-bind="foreach: Products">

 ...
    <td><div data-bind="attr:{style: images.length > 0 ? 'background-image:url($root.FormatUrl(images[0]));' : ''}" /></td>

 ...
</tbody>

我还尝试使用引号'$root.Format..'并获得了SyntaxError: Unable to parse bindings. Message: Unexpected identifier

调用我的函数的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

这里的问题是你将一个字符串与函数调用混合在一起:

'background-image:url($root.FormatUrl(images[0]));'

你要么需要如此构建它:

'background-image:url(' + $root.FormatUrl(images[0]) + ');'

或者也许从FormatUrl函数返回整个字符串,而不是在视图中连接。