问题标签 [canjs-view]
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.
canjs - How do I update my view when my Model is sorted?
I have a CanJS Model.List which I'm rendering using an EJS template like follows:
In my app where I load the data with Model.findAll
I iterate all the items and fire off an asynchronous call to update the distance
property, I have a listener listing for changes to distance
which then sorts the list based on the distance:
The call to sort()
works, I have various console.logs()
showing it, but my UI doesn't update.
I'm guessing I need the sort to trigger an event that this.each(...)
will notice.
How do I get my View to update when the Model.List is re-sorted?
canjs - canjs模型不填充胡子模板
我对刚开始学习 CanJs 很陌生,我对无法调试它的以下问题感到震惊。
我的模型如下:
GET /resources/localized ---> 获取可用的本地化语言。
我已经定义了一个组件如下
initView 有如下胡子模板:
但问题是语言环境没有得到填充,我可以看到 /resources/localized 的网络调用,这里的任何指针都可以帮助理解这一点。
canjs - 格式化日期值以在 Can.js 中显示
我所有的日期都从后端格式化为ISO 86012014-01-01T12:45:30Z
,例如. 在整个应用程序中,我想以不同的格式显示它们......
- 表格中的速记,例如
Jan 1
- 详细视图上更长、更明确的格式,例如
Monday, January 1st
.
解决方案我做了一个助手,我可以在其中传递格式。很容易。
问题现在我正在实施引导程序 datepicker,我怎样才能捕获这些要求......
- 我模型中的日期格式为 ISO
can-value
在模板中绑定到输入- 为用户和日期选择器显示格式MM/DD/YY
如果我不需要为模型中的每个日期值进行计算,则可以加分,因为它们很大并且有很多日期。
canjs - 在 CanJS 中从外部文件加载模板
如果我在 index.html 中添加以下代码,那么它工作正常,但我想在外部文件中定义,然后我想用can.view
.
如果我创建单独的 html 文件,如何从中加载模板?
javascript - Canjs – 迭代列表时何时使用哪个 mustache 标签?
在 Can.js 中似乎有几种不同的方法可以做同样的事情,这很棒!但有些方法的工作方式与其他方法略有不同,并且会影响 DOM 的呈现和更新方式。如果有人能澄清细微差别,我将不胜感激。
我认为这种选择变得有趣的场景是当您想要一些默认文本或空列表的占位符时。
{{#if list}} 和 {{#if list.length}}
这些不一样。一个空数组和一个 can.List 都会为{{#if list}}
.
{{#每个列表}}
因此,使用我们学到的#if
...
{{#列表}}
我认为这是为了两全其美。我今天才想到,由于这是一个块助手,它支持{{else}}
.
问题是,这不能生成我们用#each
.
- 将整个内容包装在一个
<ul>
标签中,无论列表是否为空,它都会被渲染 - 将标签粘贴
<ul>
在第一个块(正块?肯定?)并且每次都呈现
所以实现似乎依赖于标记。很公平。
这就是问题所在。
据说,#each
并#list
以不同的方式更新 DOM。从文档中#each
...
如果键的值是 can.List,则生成的 HTML 会在列表更改时更新。当列表发生变化时,只发生最少量的 DOM 元素变化。
因此,将一项添加到列表中,仅呈现该项,删除一项,仅删除该元素。的行为#list
没有记录,但我的印象是它可能会重新渲染整个块。
问题
哪个最好?除了更简洁之外,我不确定#list
它有什么优势,那么为什么作者建议它是首选呢?
canjs - CanJS 部分是实时绑定视图,部分不是?
我正在构建一个包含数千个列表项且没有分页的数据网格。结果,可以理解的是,实时绑定的性能非常差。有大约 20 个列表项,没有任何滞后。
有没有办法让我的模板的一部分实时绑定,例如<thead>
,但对 ? 使用简单的字符串连接/注入<tbody>
?
编辑
我的方法可能是问题所在。数以千计的 static<tr>
也可能相当滞后。有人建议我在页面滚动时尝试添加/删除行。
canjs - 自动关闭模板中未关闭的标签
嗨,我正在尝试创建这样的模板
所以想法是<ul>
在列表中的第二个用户之后关闭上层打开新隐藏<ul>
并将所有其余用户放在这里。但相反,我关闭了<ul>
,最终的 html 看起来像:
这是我的js
有什么方法可以防止自动关闭标签,还是我完全做错了?
javascript - 使用 Map 呈现选项时,CanJS can-value 对多选不起作用?
我无法使用用于多选输入的 can-value 帮助器来呈现所选值。
当使用 can.Map 动态呈现选项而不是在 DOM 中提供可用选项时,特别会出现此问题。
这是一个解释这个问题的小提琴:
http://jsfiddle.net/neildcruz19/ramey3zo/6/
控制
小胡子/HTML
有没有办法解决这种情况?
canjs - 每当将匹配选择器的元素添加到控件元素时,如何将事件绑定到 Can.Control 以运行?
我正在尝试构建一个 DateTimePicker 小部件,并且不想担心小部件的实例化,所以我创建了一个 Can.Control,它将 html 正文作为元素。
但是,现在我的输入元素使用 can.view 在 DOM 中呈现。如何将事件绑定到将新的 dateTime 元素插入到我的控制范围?
当元素添加到控制元素时,有什么方法可以指定'input.dateTime load'来绑定日期选择器?
canjs - CanJS:如何为生产打包视图模板
打包视图模板以供生产使用的最佳方式是什么?
我有许多 .stache 文件。在开发中,它们与 can.view() 同步加载。在生产中,我想避免多个 HTTP 请求。
正确的方法是什么?我应该将它们捆绑为单个 html 文件还是单个 js 文件?StealJS 使用哪种格式?