问题标签 [canjs]

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 回答
683 浏览

backbone.js - BackboneJS 与 CanJS 哪个更好?

我对下一个项目使用 BackboneJS/CanJS 的两种选择感到困惑。谁能建议哪个更好?

0 投票
1 回答
496 浏览

javascript - 使用 mustache 和 canjs 比较来自两个不同上下文的值

假设我在下面有这个小胡子模板。联系人和类别基本上是一个对象数组:

我想要做的是通过比较联系人|类别和类别|数据在选项标签中生成“选定”。

所以我所做的是像这样实现sameCategory:

不幸的是,我得到了两个参数而不是字符串的对象,所以我的相等条件失败了。我究竟做错了什么?除了registerhelper之外还有更好的方法吗?

支持数据:

我从示例Diving into CanJS文章中获取了这些代码。

0 投票
1 回答
334 浏览

javascript - 使用 CanJS,当实例被销毁时,如何从 Model.List 中自动删除模型实例?

我很难理解调用destroy模型实例应该如何影响它所附加的 Model.List 。

该文件指出:

can.Model.List 相对于传统 can.List 的一个优点是,当您销毁模型时,如果它在该列表中,它将自动从列表中删除。

但是,当我运行此代码时:

这是我在控制台中看到的:

为什么调用destroyed后元素还在Model.List中?为什么不触发destroyedand事件?remove

请注意,在我尝试调试的实际代码中,调用destroy确实会触发 DELETE 请求,并且该对象会按预期在服务器上被删除。但是,它不会从 Model.List 中删除,因此也不会从关联的视图中删除。

0 投票
1 回答
148 浏览

javascript - can.Construct 和 can.Construct.extend 的区别

我正在阅读 CanJS API 文档并遇到can.Construct.extend http://canjs.com/docs/can.Construct.extend.html。我知道 can.Construct 创建了一个构造函数但无法弄清楚用途can.Construct.extend 的。谁能解释一下 can.Construct 和 can.Construct.extend 之间的区别。如果你能用一些例子来解释它,那就太棒了。

提前致谢

0 投票
1 回答
71 浏览

ajax - Canjs——如何获取类型并传递给ajax?

HTML 片段

我不熟悉的Canjs。

});

尝试获取数据类型,以便它可以传递给 ajax(例如 /love/34?type=image,但它一直给我 /love/34?undefined。不确定我忽略了哪里。

感谢帮助。提前致谢。

0 投票
1 回答
678 浏览

canjs - CanJS如何刷新模型

我有一个模型,它代表在服务器上运行的作业列表

我想轮询服务器以获取计时器上的更新,以显示作业状态的更改。

我该怎么做呢?

我的控件看起来像这样

我的模型,到目前为止看起来像这样

0 投票
1 回答
97 浏览

javascript - 按钮被多次调用

我有一个搜索页面和一个编辑页面。我搜索用户,然后当我得到结果时,我可以编辑用户。我正在使用 CanJS,并且为每个页面定义了路由。

在 FormUser 中,我有一个 saveButton 的单击事件。如果我搜索用户然后按编辑按钮,更改某些内容并保存更改,它工作正常。但是,如果保存后,我返回搜索页面并执行与之前相同的操作,则保存按钮将被调用两次。我不知道为什么会这样。我究竟做错了什么?

编辑 我让它工作。每当我点击一个新的编辑按钮时,不知何故,视图被放置在另一个之上,它并没有取代旧的。

所以我尝试了这个并且它有效:

0 投票
2 回答
11112 浏览

javascript - 如何在 Chrome/Safari 中调试 EJS 代码

我正在使用带有 CanJS 的 EJS 模板,并且正在寻找一种方法来调试我的 EJS 代码。目前,firebug 可以向我显示 EJS 中的语法错误,但在其他浏览器中,我什么都看不到。我需要非常仔细地检查我的 EJS 文件以解决错误。我在网上搜索并发现了ejs_fulljslint https://code.google.com/p/embeddedjavascript/,但无法正常运行。我将脚本包含在我的 HTML 文件中,但仍然没有收到任何控制台错误。我无法在网络上找到调试演示。

谁能告诉我如何调试我的 EJS 代码。如果您能给我提供任何示例,我们将不胜感激。

0 投票
1 回答
259 浏览

javascript - 传单弹出窗口在第一次关闭时清除内容

对于我的应用程序,我使用的是 Leaflet,而且我已经走了很远,所以我确信我理解完成工作的“传单方式”。

因为我的所有标记都只有一个静态布局,所以我创建了一个简单的 Mustache 模板,它插入可变数据并给我我的 HTML:

这可以按预期工作并生成一个 HTML 字符串,该字符串可以正确显示。

但是当我关闭并重新打开弹出窗口时,它会导致一个空的弹出内容。

我的想法是扩展 L.Popup 类并将 _content 设置为我的 HTML 代码。但我不确定它是否有点过于强大。

非常感谢你的帮助,

斯蒂芬

0 投票
1 回答
181 浏览

javascript - 如果我们使用 JavaScript MVC,那我们怎么还能有视图动画呢?

如果我们将 MVC 用于我们的网页,尤其是如果我们只是修改数据(模型),并让视图“观察”模型,以便对模型进行任何更改,视图将自动更新并反映模型,我们怎么还能有动画呢?

更新:视图只是一个模板,例如 Mustache 或 Handlebars,例如,在 can.js 中,那么我们如何制作动画?)

例如,假设我们有两行卡片。用户可以点击第一行将卡片“移动”到第二行。因此,如果我们不使用 MVC,我们可以将第 1 行中的卡片淡出,并将卡片淡入到第 2 行的末尾。但是,如果我们实际使用 2 个数组,让 2 个视图观察这 2 个数组,无论这两个数组如何变化,视图都反映了模型,那么我们如何才能真正实现淡出淡入呢?我只能想到如果视图使用opacity: 0不显示卡片,并使用CSS过渡使我们为卡片的消失和外观设置动画,但是在不透明度之后卡片仍然会显示为空白空间(仍然占用屏幕空间)是0。问题是,我们如何让view自动显示模型是什么但仍然有动画?