2014-09-23 75 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