问题标签 [canjs-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
196 浏览

javascript - CanJS 对象列表自动子类化和重类化

远程的第三方 JSONP 服务器为我的 CanJS 脚本提供了如下结果列表:

typeCanJS 中定义的预期对象类在哪里can.Model.extend

以下简化代码演示了 CanJS 设置:

问题:

ABaseClass.findAll({}, function(data) { ... })被调用时,它为更多对象调用 JSONP 端点,回调获取 CanJS 模型的列表,但只有 class ABaseClass

问题:

CanJS 是否提供了一个辅助方法来根据对象列表中的字段自动创建子类?如果没有,我该如何实施?


预期输出:


环境:

  • CanJS:1.17
  • jQuery:1.10.1
  • 我无法控制端点返回的对象类型。
  • 多个 AJAX 调用不是公认的解决方案。
0 投票
1 回答
459 浏览

javascript - canjs 在渲染后为 Observe.List 中的元素附加控件

通常问题是我在 Control 中的单击操作不起作用。

在下面的代码中,您可以看到当我使用 Observe.List 生成带有项目的列表时的情况,因此当列表中自动出现新元素时它会更新(见下文),并且它是在 init func 的第一个控件中生成的。

同样在第一个控件中,当将新元素放在列表中时,我将控件附加到它的“{files} add”方法以用于新生成的元素。

问题是在第二个控件中单击事件将不起作用。我认为这是因为我尝试在自动重新生成 Observe.List 完成之前这样做。证据是 jquery 还没有元素。

是否可以在通过自动重新生成 Observe.List 渲染之前附加 Contol ( '{files} add' )?我应该如何以正确的方式在新元素上设置控制?我可以以某种方式做到这一点吗?

列表视图:

列表元素的控件。这里有问题!

0 投票
1 回答
123 浏览

canjs - Canjs 可观察的记录列表自动更新 DOM

我应该如何在此代码中定义可观察对象而不是 {cases: records} 以在更新此可观察对象后自动更新 dom:

这是 can.Map({case: []}) 还是 can.List?如何在小胡子助手中使用它?{{#每个案例}}?

我试过像

然后在代码中做

但它不会更新 dom。

0 投票
1 回答
287 浏览

canjs - 如何从 CanJS 中的 can.List 中删除元素

我是 CanJS 的新手。我想知道如何不使用 pop() 删除 can.List 中的元素。

如何使用 selected=true 删除列表中的元素?或者有什么办法可以根据索引删除。文档告诉 pop() 是唯一的方法,也是拼接的。

0 投票
2 回答
67 浏览

canjs - 列表计算上的更改事件

我有一个这样的地图:

列表填充如下:

我将其传递给这样的控件:

控件如下所示:

然后我这样做:

但是“{sites} change”功能不会触发。知道为什么吗?谢谢!

0 投票
2 回答
300 浏览

sorting - 如何使用 CANJS 的 sort() 函数

我浏览了 CANJS 文档并尝试在 can.List() 上实现排序功能。

当我尝试在控制台(浏览器)上运行它时。它在说“未捕获的类型错误:未定义不是函数”。为什么?我在这里错过了什么吗?

参考:http ://canjs.com/docs/can.List.prototype.sort.html

0 投票
0 回答
126 浏览

canjs - 在canjs中将项目添加到待办事项列表

在尝试复制和改进 canjs.org 主页上的待办事项列表时,我遇到了一些障碍。该示例没有向您展示如何将项目添加到待办事项列表。所以我添加了一个“添加另一个”跨度,单击时执行 newTodo。

接下来我添加了 newTodo 函数,该函数在保存新的 Todos 列表后重置。

但是,这会导致列表被完全擦除然后重写,从而导致难看的闪烁效果。我觉得有更好的方法来做到这一点。

0 投票
1 回答
168 浏览

javascript - 无法使用'in'运算符在canjs中搜索'18'

我正在调用 ajax 函数来从模型中获取数据。我正在尝试在模板中加载数据,但我无法在 can.list 中设置属性。这是我的电话:

它显示不能使用“in”运算符搜索“18”。我在谷歌搜索这个,但我找到了 jquery 的结果。还有其他选择吗?

0 投票
1 回答
39 浏览

canjs - 如何在 can.js 中禁用 model.store

转移到 REST 架构,因此不再需要存储这些。有没有办法完全禁用模型存储