gpt4 book ai didi

javascript - 为什么我的 observableArray 不工作?

转载 作者:行者123 更新时间:2023-11-28 02:46:12 25 4
gpt4 key购买 nike

嗨,我正在尝试使用 observableArray 进行 foreach,我得到:

Uncaught Error: Unable to parse bindings.
Message: ReferenceError: Nome is not defined;
Bindings value: text: Nome

这是我的 HTML:

<table data-bind="foreach: funcionarios">
<tr>
<p>Nome: <span data-bind="text: Nome"></span></p>
<p>Apelido: <span data-bind="text: Apelido"></span></p>
<p>Hobby: <span data-bind="text: Hobby"></span></p>
<p>Função: <span data-bind="text: Funcao"></span></p>
<p>Ramal: <span data-bind="text: Ramal"></span></p>
<p>Email: <span data-bind="text: Email"></span></p>
<p>Celular: <span data-bind="text: Celular"></span></p>
<p>Aniversário: <span data-bind="text: Aniversario"></span></p>
</tr>
</table>

这是我的 Js:

var FuncionarioViewModel = function () {
var me = this;

function Funcionario(base, id, nome, apelido, hobby, funcao, ramal, email, celular, aniversario) {
var me = this;

me.Id = id;
me.Nome = ko.observable(nome);
me.Apelido = ko.observable(apelido);
me.Hobby = ko.observable(hobby);
me.Funcao = ko.observable(funcao);
me.Ramal = ko.observable(ramal);
me.Email = ko.observable(email);
me.Celular = ko.observable(celular);
me.Aniversario = ko.observable(aniversario);
};

me.funcionarios = ko.observableArray([]);

me.add = function (id, nome, apelido, hobby, funcao, ramal, email, celular, aniversario) {
me.funcionarios.push(new Funcionario(me, id, nome, apelido, hobby, funcao, ramal, email, celular, aniversario));
};
}

var viewModel = new FuncionarioViewModel();
ko.applyBindings(viewModel);

这是 fiddle 链接:http://jsfiddle.net/Lrqeb/8/

我不想加载带有该数组中的默认数据的页面。

最佳答案

编辑:

好的,刚刚检查了你的 jsfiddle。我更新为使用 if 绑定(bind)来检查数组是否包含任何元素,然后再尝试 foreach 这将阻止绑定(bind)错误:

http://jsfiddle.net/Lrqeb/6/

我用以下内容包装了您的 foreach:

<div data-bind="if: funcionarios().length > 0">

编辑2:

此外,您已将 foreach 应用于 table 标记,但该标记不起作用。我将其更改为使用 tbody 标签,并且在这里工作正常:http://jsfiddle.net/Lrqeb/10/

变化如下:

<div data-bind="text: funcionarios().length"></div>
<div data-bind="if: funcionarios().length > 0">
<table>
<tbody data-bind="foreach: funcionarios">
<tr>
<td>Nome: <span data-bind="text: Nome"></span></td>
<td>Nome: <span data-bind="text: Apelido"></span></td>
<!-- and so on... -->
</tr>
</tbody>
</table>

关于javascript - 为什么我的 observableArray 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11834165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com