我有一个淘汰模型,里面有一个bar
元素,我有一个自定义函数foo()
,它不在模型中,用于格式化数据。
当我使用类似的东西将模型绑定到html视图时:
<span data-bind="text: foo(bar), attr: { 'title': foo(bar)}"></span>
它只能部分工作:文本被格式化,但属性标题被忽略(没有错误上升,只是被忽略)。但是当我使用:
<span data-bind="text: foo(bar), attr: { 'title': bar}"></span>
标题输出为'bar'。所以基本上自定义函数不能使用属性绑定。
那么有没有办法让foo(bar)
正常工作?
P.S。这是一个可重现的代码:
HTML视图
<span data-bind="foreach: listOfReports">
<div class="10">
<span data-bind="text: Helper.timestamp2HumanReadable(date), attr: { 'title': Helper.timestamp2Date(date)}"></span>
</div>
</span>
视图模型
function ArticlesViewModel() {
this.listOfReports = ko.observableArray([{'date' : 1283364108}, {'date' : 1893364108}]);
};
ko.applyBindings(new ArticlesViewModel());
当我开始编写代码以使其可重现时,我发现我在Helper中的函数中没有返回正确的值。
对不起你们所有人这篇文章以及浪费你的时间。我希望下次我永远不会这样做。非常感谢您的帮助。
答案 0 :(得分:2)
如果bar
是ko.observable
,那么您需要做的就是:
<span data-bind="text: foo(bar()), attr: { 'title': foo(bar())}"></span>
如果bar
不是ko.observable
,那么您的代码应该有效。