Knockoutjs查看定位器?

时间:2012-10-22 13:46:08

标签: javascript mvvm knockout.js

我想知道是否有任何方法可以在我的html中定义一个区域(div标签?),其中模板会根据绑定的对象而改变?

假设我们有一个

  • ShellView / ShellViewModel
  • ListView / ListViewModel
  • EditOneView / EditOneViewModel

ShellViewModel有一个变量,它是一个ListViewModel或一个EditOneViewModel,并且根据该变量,将使用ListView或EditOneView。

1 个答案:

答案 0 :(得分:4)

是。您可以将函数传递给模板绑定中的name属性,该属性将选择要使用的函数:

<div data-bind='template: { name: whichTemplate }'></div>

var ShellViewModel = {
    //....

    whichTemplate: function(object) {
        // test which class you are using and return the name of the appropriate template
    }
}