簡體   English   中英

從鋰電池控制器獲取的骨干網模型未正確加載到bb模型中

[英]Backbone Model fetched from Lithium controller is not loaded properly in bb Model

我正在使用ribs.js和Lithium。 我通過傳遞_id作為頁面上的隱藏參數來從服務器中獲取模型。

數據庫MongoDB已經正確存儲了數據,可以從控制台中以以下方式查看該數據庫:

{ "_id" : ObjectId("50bb82694fbe3de417000001"), "holiday_name" : "SHREE15", "description": "", "star_rating" : "3", "holiday_type" : "family", "rooms" : "1", "adults" : "2", "child" :"0", "emails" : "" }

鋰模型類是這樣的:

class Holidays extends \lithium\data\Model {
public $validates = array(
        'holiday_name' => array(
                array(
                        'notEmpty',
                        'required' => true,
                        'message' => 'Please key-in a holiday name! (eg. Family trip for summer holidays)'
                ))); }

骨干假日模型是這樣的:

    window.app.IHoliday = Backbone.Model.extend({       
    urlRoot: HOLIDAY_URL,
    idAttribute: "_id",
    id: "_id",
    // Default attributes for the holiday.
    defaults: {
    },

    // Ensure that each todo created has `title`.
    initialize: function(props) {

    },

骨干/獲取的代碼是:

var Holiday = new window.app.IHoliday({ _id: holiday_id });
        Holiday.fetch(
                {
                    success: function(){
                        alert('Holiday fetched:' + JSON.stringify(Holiday));
                        console.log('HOLIDAY Fetched: \n' + JSON.stringify(Holiday));
                        console.log('Holiday name:' + Holiday.get('holiday_name'));
                    }
                }               
           );

鋰控制器代碼為:

public function load($holiday_id)
{
    $Holiday = Holidays::find($holiday_id);
    return compact('Holiday');
}

問題:從服務器獲取的骨干模型的輸出如下,當數據返回到骨干模型中時,假日模型未正確“形成”:

    HOLIDAY Fetched: 
{"_id":"50bb82694fbe3de417000001","Holiday":{"_id":"50bb82694fbe3de417000001","holiday_name":"SHREE15","description":"","star_rating":"3","holiday_type":"family","rooms":"1","adults":"2","child":"0","emails":""}}

iplann...view.js (line 68)

Holiday name:undefined

顯然,從鋰傳遞/轉換數據並將其作為模型加載到主鏈Holiday模型中時,存在一些問題。 我的代碼中有什么很明顯的錯誤嗎?

默認情況下,Backbone期望模型數據位於響應的根。 您將其放在“假日”鍵下。 在您的控制器中,嘗試return $Holiday->to("array"); 這應該按Backbone的預期返回。 或者,您可以覆蓋Backbone模型的parse()方法。

暫無
暫無

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

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