【问题标题】:Knockout Template Binding ViewModel data as argument敲除模板绑定 ViewModel 数据作为参数
【发布时间】:2012-03-15 16:18:30
【问题描述】:

由于我之前的帖子不是很清楚,所以我重新发布。

我有一个 KO 视图模型,它带有一个像这样的复杂对象(带有列表和子列表等) - 比我实际拥有的要简单得多:

$(function () {

function MyViewModel() {
  this.collection = {
    List: [{ name: 'amar', progress: 20 },
           { name: 'vijay', progress: 50}]
  }
}

ko.applyBindings(new MyViewModel());

然后在某个时候,我将一个对象(位于 KO 视图模型的深处)传递给这样的函数,我想在其中为该项目创建一个 div:

var createDivs = function (item) {
// "task-template" is defined in my html
var itemDiv = $("<div  data-bind=\"template: { name: 'task-template', HOW_DO_I_REFERENCE_item_HERE?  }\" ></div>");
itemDiv.appendTo("#ParentDiv");
}

但是,正如您在上面的代码中看到的,我不确定在定义 itemDiv 模板时如何引用项目对象(或将其指定为数据源)?有人可以帮忙吗?

要求是我想将此 div 的样式绑定到项目中的某个属性(即在 KO 视图模型中)。

谢谢

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    查看 $parent、$parents 和 $root 对象http://knockoutjs.com/documentation/foreach-binding.html

    【讨论】:

    • 实际上,我想做的是在我的模板中以声明方式指定列表源(下面代码中的“collection.List”),如下所示: var itemDiv = $("
      ");我想知道如何在代码中手动指定一个列表(已经在 KO 视图模型中,在层次结构的深处)。谢谢
    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多