2014-09-23 80 views
1

我是Knockout js的新手,但我正在慢慢学习。无法绑定已绑定数据的标签中的数据Knockout js

然而,我却遇到了一个难以理解的问题,我的猜测是需要经验来理解。

这是我的问题,当我映射数据时,CommentedDate值不显示。我认为这是因为span是在已经绑定数据的h2里面。

我下面这个tutorial这是使用ASP和Knockout.js

<h2 data-bind="text: CommentedByName"> 
     <span class="timeago" data-bind="text: CommentedDate"></span> 
</h2> 

什么可能我做错完成后,用PHP实现这一点?

我的模型:

function Comment(data) { 
    var self = this; 
    data = data || {}; 

    //persisted properties 
    self.CommentId = data.comment_id; 
    self.PostId = data.post_id; 
    self.Message = ko.observable(data.message || ""); 
    self.CommentedBy = data.commented_by || ""; 
    self.CommentedByName = data.commented_by_name || ""; 
    self.CommentedDate = getTimeAgo(data.comment_date); 
    self.error = ko.observable(); 

} 
+0

你是正确假设'这是因为跨度在已经绑定数据的h2内'。你有什么尝试呢? – haim770 2014-09-23 07:35:40

+0

当我将跨度移到h2标签之外时,它可以正常工作,但会随着设计而变化。 – 2014-09-23 07:42:15

回答

0

由于span标签被允许进入h1标签可以代替试试这个:

<h2> 
    <span class="name" data-bind="text: CommentedByName"></span> 
    <span class="timeago" data-bind="text: CommentedDate"></span> 
</h2> 

按您的评论:

<h2 data-bind="html: (ko.unwrap(CommentedByName) + '<span class=\'timeago\'>' + ko.unwrap(CommentedDate) + '</span>') "> 
</h2> 
+0

这可行,但它与我的设计混乱。我想知道是否有一种方法可以在h2标签内显示CommentedDate – 2014-09-23 07:53:40

+0

个人而言,我更喜欢修复我的CSS而不是搞乱我的HTML。无论如何,我更新了我的答案。 – haim770 2014-09-23 07:56:29

+0

当我尝试这个时获得一些有趣的输出。 '+ CommentedDate +''“”> – 2014-09-23 08:18:19