gpt4 book ai didi

knockout.js - knockout 无法处理绑定(bind) - 未定义

转载 作者:行者123 更新时间:2023-12-01 03:27:48 24 4
gpt4 key购买 nike

我使用 Knockout ^3.1.0 继承了一个项目.我需要构建一些功能。我从来没有使用过 knockout 。

每个 View 都有一个从主视图模型调用的 View 模型 init(model) .

属性在 init 开始时初始化并在 View 中使用,没有问题。例如:

model.entities = ko.observableArray([]);
model.hasEntities = ko.observable(false);

像这样初始化并在无容器绑定(bind)中正确使用,如下所示:
<!-- ko if: hasEntities -->
<!-- ko foreach: { data: entities, as: 'entity' } -->

所以我在同一个地方/方式初始化我的新属性:
  model.numberOfColumns = ko.observable(2);

model.columnGenerator = ko.computed(function() {
return ko.utils.range(0, model.numberOfColumns());
}, model);

并这样使用它:
<!-- ko foreach: { data: columnGenerator, as: 'index' } -->

并得到这个错误:

knockout.js:72 Uncaught ReferenceError: Unable to process binding "foreach: function (){return { data:columnGenerator,as:'index'} }" Message: columnGenerator is not defined



我搜索了与此错误相关的许多问题,但没有任何帮助。

谢谢!

最佳答案

那是因为你的

<!-- ko foreach: { data: columnGenerator, as: 'index' } -->

在与 $root 不同的范围内解释范围(其中 columnGenerator 被定义)。

试试这个:
<!-- ko foreach: { data: $root.columnGenerator, as: 'index' } -->

Binding-Context

关于knockout.js - knockout 无法处理绑定(bind) - 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024731/

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