鉴于存在枚举和视图模型:
var MyEnum = {
Val1 = 1,
Val2 = 2
};
var someViewModel = {};
ko.applyBindings(someViewModel);
和观点:
<div data-bind="template: 'my-template', data: MyEnum.Val1"></div>
我无法找到将MyEnum.Val1
的值传递给绑定的方法,因为Knockout在viewmodel中查找它。前缀$root.MyEnum.Val1
也不起作用,因为它仍然在视图模型中查找。
任何想法如何让它发挥作用?
答案 0 :(得分:0)
我更喜欢先将viewModel声明为函数,而不是直接将它们作为对象。通过这样做,我们可以在将来重用它,如果需要的话,并且在初始化期间将有一个更简洁的过程将对象传递给viewModel。
以下是示例:
function someViewModel(enum) {
this.myEnum = enum;
};
var MyEnum = {
Val1: 1,
Val2: 2
};
ko.applyBindings(new someViewModel(MyEnum));
然后在HTML中,您可以执行以下操作
<div data-bind="template: 'my-template', data: myEnum.Val1"></div>