淘汰组件参数处理

时间:2015-02-25 08:41:44

标签: knockout.js parameter-passing knockout-components

我似乎不理解以下内容:

我有一个使用淘汰组件的html页面,请参阅下面的代码:

HTML:

<h2>Home</h2>
<p data-bind='text: message'></p>
<examlist params="list: StartList"></examlist>

所以将参数传递给考试列表

在我的淘汰赛考试清单组件视图模型中:

define(['knockout', 'text!./examlist.html'], function(ko, templateMarkup) {

function Examlist(params) {
    this.message = ko.observable('Hello from the examlist component!');
    this.typeOfList = params.list;
    console.log(this.typeOfList);

我的控制台出错:

未捕获的ReferenceError:未定义StartList

考试名单html标记标记:

<h2>examlist</h2>

<p data-bind='text: message'></p>

为什么会这样?

在我的viewmodel中,我可以直接访问params.list获取if语句吗?

提前感谢您的帮助。

此致

1 个答案:

答案 0 :(得分:0)

你需要viewModel和要绑定的列表,比如

function MainViewModel() {
    this.list1 = [1, 2, 3];
    this.list2 = ["test", "it", "work"];
}

var viewModel = new MainViewModel();

ko.applyBindings(viewModel);

你可以绑定像

这样的参数
<examlist params="list: list1"></examlist>
<examlist params="list: list2"></examlist>

或者只是明确地传递值数组:

<examlist params="list: [5, 6, 7]"></examlist>

Working sample