无法使用attr属性更改我的图像

时间:2014-01-14 11:43:48

标签: jquery jquery-ui knockout.js

  $("#ServiceID" + viewModel.ServiceID()).attr("src", viewModel.smallImageUrl());

#ServiceID(是我的图片ID)和viewmodel.ServiceID(是我唯一的ID)和viewmodel.smallImageUrl()是我在cdn中的图片网址

根据我的唯一ID更改我的图片。但它不适合我。我不知道jquery中的确切语法。

1 个答案:

答案 0 :(得分:0)

正如@Anders已经指出的那样,Knockout推出了一种MVVM方法。这意味着,一方面,从演示文稿中分离数据。这意味着当你在viewmodel中执行jQuery时,你做错了(抱歉,如果这听起来很苛刻)。

建议的方法如下:在HTML中查找图像并对其应用绑定,以便将src设置为viewmodel的属性。所以它会是这样的:

<img id="ServiceID3" data-bind="attr: { src: $root.smallImageUrl }" /> // $root points to the viewModel you've bound using ko.applyBindings

JavaScript中的某个地方:

ko.applyBindings(viewModel);

如果这不起作用,如果viewmodel的observable持有您希望它们保存的值,则一种简单的调试方法是使用以下绑定向您的页面添加div:

<div data-bind="text: ko.toJSON($root)"></div> // This will output the contents of your viewmodel as a string