簡體   English   中英

如何防止ember.js改變模板的結構?

[英]How to prevent ember.js change the structure of the template?

我正在使用ember.js 0.9.2(但這個問題也出現在HEAD修訂版中)並且它正在改變我的模板的標記結構。 我有這樣的模板:

    <script type="text/x-handlebars" data-template-name="appointment-cell">
            <td colspan="1">
                <span class="reserved">
                    {{text}} 
                </span>
            </td>
    </script>

我的JS代碼是這樣的:

        var AppointmentCellView = Ember.View.extend({
            templateName: 'appointment-cell',
            text: 'Some name',
        });
        window.App = Ember.Application.create({
            init: function(){
                this._super();
                AppointmentCellView.create().appendTo("#the_tr");
            }
        });

但視圖呈現如下:

<div id="ember142" class="ember-view">
    <span class="reserved">
        Some name 
    </span>
 </div>

不知道,但似乎ember.js正在刪除我的td元素。 這是我在視圖類中使用tagName: 'td'時的輸出:

 <td id="ember142" class="ember-view"></td>

它甚至沒有呈現內容! 我錯過了什么嗎?

我花了一段時間才想出這一個......

您的問題是您沒有格式正確的HTML,因此瀏覽器忽略了格式不正確的標記。 看看這個jsFiddle並查看檢查器中的結果

如果您需要任何其他幫助,請不要猶豫!

PS請使用jsFiddle顯示您的錯誤。 它幫助我們:)

為了明確總結我認為這一課程由更聰明,更有經驗的人隱含提供:如果你使用內聯模板,請確保你的Ember / handlebars模板內的標記/元素可以單獨解析,並且不會因插入Ember <div>而被炸毀。 不要將<table>放在模板之外,將<tr><td>放在里面。 確保整個表都在里面,因此可以將其解析為統一的整體。

但是,如果您使用的是非內聯模板,請執行以下操作:

var AppointmentCellView = Ember.View.extend({
    templateName: 'appointment-cell',
    text: 'The Text',
    tagName: 'td',
    attributeBindings: ['colspan'],
    colspan: 1
});

然后你可以選擇定義Ember將圍繞模板內容的元素類型。 在上面這種情況下,Ember用於傳遞模板內容的翼楔將是<td>而不是<div> ,它將在您的桌子內完美地解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM