2013-01-16 140 views
1

我正在構建一個使用流星的應用程序,並且無法理解路徑和視圖之間的關係。我有路由器正常工作,但在完成調用新視圖的研究之後,我感到莫名其妙。骨幹js路徑/視圖關係

我是否使用App.navigate?我打電話是這樣的:

var newView = new MyView(); 

內適當的路由器功能?這是我使用(即作品)的代碼和我的應用程序只有兩頁 - 索引頁和項目視圖:

var Aphorism = Backbone.Router.extend({ 
    routes: { 
    "saying/:id": "showSaying" 
    }, 
    showSaying: function (id) { 
    alert('Saying id ' + id + '.'); 
    } 
}); 

回答

1

你定義在路由器存在什麼樣的路線。除非您有非常複雜的應用程序,否則通常只需要其中的一種。

然後,您將應用程序中的鏈接和按鈕連接起來,以便在單擊時執行app.navigate。你可以用一個視圖來做到這一點,或者自己用jQuery這樣的東西來做,這取決於你。

例如:

<div id="myButton">Click me!</div> 

var myView = Backbone.View.extend({ 
    el: "#myButton", 
    events: { 
    "click": "go" 
    }, 
    go: function() { 
    myRouter.navigate("/someUrl", {trigger: true}); 
    } 
}); 
+0

感謝拉胡爾,你的例子是明確的,consie。但是,應用程序如何知道特定視圖(例如,您的示例中的myView)是當前/活動視圖,特別是在多視圖應用程序中? – squeezemylime

+0

「視圖」只是一個可以實例化並用於鉤入DOM的對象。圍繞它構建架構取決於你。視圖可以是按鈕,菜單,整個屏幕等。因此,爲了讓應用程序知道任何關於視圖的信息,您必須編寫連接點的代碼。 – Rahul

+0

好吧,我現在看到。你的例子工作。我認爲Views的使用比我以前想象的更開放。謝謝! – squeezemylime