2013-10-10 77 views
3

所以,我從繼承的項目獲得了這個數據。將數據從JSON傳遞到主幹>模板頁面

  • JSON數據的字段。

defaults:{ 
     "coolstuff":{uuid: null}, 
      "coolStartDate":new Date(), 
      "coolEndDate": new Date(), 
      "cooldata":'', 

      "supercool":'', // I am adding this (trying) 
     }, 

從這些其他一些相關的JS爲:

offerStart: function() { 
    var date = this.get('coolStartDate') 
    return (_.isNull(date)) ? new Date() : helper.formatDate(new Date(date)) ; 
    }, 

其他一些數據被發現,被稱爲加價爲模板內;

<%= cooldata %> 

我在抓住'supercool'數據的每一次嘗試都失敗了。我已經嘗試了不同的synatax,在頁面上,離開頁面,一切。

我想知道我在骨幹做(我是新來的明顯Backbone.js的)

爲了使用我的新的數據塊或數據字段「過冷」的通過JSON,並允許它在頁面中作爲模板工作。


在這種特殊情況下,一個下拉菜單。

<div class="form-group"> 
    <select class="form-control filter"> 
     <option><%= supercool %></option> 
     <option><%= supercool %></option> 
    </select> 
</div> 

更新!


這是我在我的Backbone.js的,但仍然失敗第一次運行當前的嘗試。

(1.) MODEL。 (型號/ page.js)

define([ 
    'jquery', 
    'underscore', 
    'underscore', // Page > Model 
    'backbone', 
    'helpers/helpers', 
    'bbvalidation' 
], function(_, Backbone, Helpers) { 
    var helper = new Helpers(); 
    var offerModel = Backbone.Model.extend({ 
     urlRoot: "/loyalty/api/supercoolfile", 
     idAttribute: 'uuid', 
     url: function() { 
      return this.urlRoot + '/coolguys/' + this.get("id"); // 
     }, 
      defaults:{ 
     "supercool": "", // here 
     }, 

(2.) VIEW。 (視圖/儀表板/ page.js)

define([ 
    'jquery', 
    'underscore', // Views -- js/views/page.js 
    'backbone', 
    'vm', 
    'text!templates/dashboard/page.html' 
], 

    template = _.template(<'<p>Name: <%= supercool %> </p>'), 

    render: function() {  
     this.$el.html(this.template(this.model.toJSON())); 
     return this; 
      } 

     }); 
    }); 

(3.)拉低數據INTO TEMPLATE(嘗試)/dashboard/page.html

  <option><%= supercool %></option> 

應該工作,對?他們不適合我。


回答

1

這很難說究竟發生了什麼,因爲我不能肯定如何所有代碼的連接,但如果你有渲染功能下面,就應該搶「過冷」爲您提供:

template = _.template(<your template here>), 

render: function() {  
    this.$el.html(this.template(this.model.toJSON())); 
    return this; 
} 

這是假設第一位代碼來自傳遞到您的視圖的模型。該模板將挑選出需要的數據。

編輯:

有很多在這個單個職位。 Backbone項目不需要集合。它的目的是保存一系列模型。即您想要存儲多個優惠,並且這種方式是一個集合。集合將允許您遍歷視圖中的每個模型來渲染它們。此外,您將模型初始化爲offerModel,但將OfferModel作爲集合中的模型傳遞。我不明白你爲什麼重新編寫集合獲取方法。

我不確定這是怎麼回事,但它看起來像有一堆不必要的複雜化。

2日編輯:

我創建,告訴您如何得到這個渲染,不需大部分的外來信息的非常基本的jsfiddle:

http://jsfiddle.net/mmerkes/RdbXH/1/

+0

男人啊!謝謝一堆;好吧,我的第一部分代碼應該在我的Models文件中,對嗎?我應該在'視圖'中寫什麼 - 這就是你建議我彈出'視圖'渲染的內容嗎?我認爲這可能是我的錯誤!明天當我回到應用程序時,我會明白的! –

+1

是的,第一部分代碼應該位於Backbone Model對象中,並且需要使用上面的render函數創建View Backbone對象。您將實例化視圖並傳入模型的實例,然後調用視圖的渲染函數。我會看看一些示例代碼,因爲有很多東西可以讓它們全部正常工作。 – EmptyArsenal

+0

謝謝@EmptyArsenal我仍然在這裏打牆;我只是更新我的問題,我知道如果我得到這個,我可以成功開始使用backbone.js! –