首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CanJS和胡须

CanJS和胡须
EN

Stack Overflow用户
提问于 2013-05-06 02:16:43
回答 1查看 1.1K关注 0票数 0

我在我的应用程序中使用胡子时遇到了问题。我窃取了'can.....mustache‘,我有一个模型对象,它的结构如下:

代码语言:javascript
复制
// widgets
Models.LayoutWidget = can.Model({
    findAll: 'GET /pages/{id}/layouts/widgets'
}, {});

然后,使用fixture helper,它可以正确地获取以下内容:

代码语言:javascript
复制
var LAYOUT_WIDGETS = [
    {
        id: 1,
        name: 'Menu',
        config: {
            width: 4,
            height: 1
        }
    }
];

这就是模板:

代码语言:javascript
复制
<script id="layout-widget-template" type="text/mustache">
    <li class="layout-widget" {{data 'widget'}}>
        <span class="layout-widget-delete">&times;</span>
        <span class="layout-widget-name">{{name}}</span>
    </li>
</script>

这是我用来获取模板的代码:

代码语言:javascript
复制
var template = can.trim(can.view.render('#layout-widget-template', widget));
// or
var template = can.trim(can.view('#layout-widget-template', widget));
// or same without trim

它只是给了我

代码语言:javascript
复制
<li class="layout-widget" data-view-id='2'>
    <span class="layout-widget-delete">&times;</span>
    <span class="layout-widget-name"><span data-view-id='3'>@@!!@@</span></span>
</li> 

什么the.....are那些"@@!!@@“?它也没有正确绑定数据,因为如果我尝试

代码语言:javascript
复制
can.data(el, 'widget'); // gives undefined!!

我在我的页面上有其他模板,可以正确地处理这些小部件项目。快把我逼疯了!我已经在我的模板中尝试了{{self.name}},{{this.name}}!有帮助吗?提前使用Tnx!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 01:35:01

您看到的符号是活动绑定的占位符,一旦您将呈现的文档片段添加到DOM中,这些符号就会消失。

我建议始终使用can.view,因为它返回文档片段,而不是返回字符串的can.view.render (这可能也是data helper无法工作的原因,因为数据只能附加到DOM元素)。文档片段已经是一种DOM结构,所以没有理由通过can.trim运行它(实际上,它会将其转换回字符串并修剪该字符串,这很可能不是您所需要的)。

下面是一个fiddle示例,它还将小部件数据记录到控制台:http://jsfiddle.net/3gD2p/

代码语言:javascript
复制
// widgets
var LayoutWidget = can.Model({}, {});

var widget = LayoutWidget.model({
        id: 1,
        name: 'Menu',
        config: {
            width: 4,
            height: 1
        }
    });

$('#dummy').html(can.view('layout-widget-template', widget));

console.log($('.layout-widget').data('widget'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16387578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档