如何在 Backbone.js 的檢視中訪問模型的資料?


在 Backbone.js 中,檢視通常與模型關聯,並透過檢視的 `this.model` 屬性訪問模型的資料。要在檢視中訪問模型的資料,可以使用模型上的 `get()` 方法,並傳入要檢索的屬性名稱。

Backbone.js 是一個輕量級的 JavaScript 庫,有助於構建和組織客戶端程式碼。Backbone.js 提供了一個模型-檢視-控制器 (MVC) 框架來構建 Web 應用程式。模型表示資料,視圖表示 UI,控制器管理兩者之間的互動。這種結構允許清晰地分離關注點,並使應用程式更易於維護和擴充套件。

Backbone.js 還提供了一套內建功能,例如事件處理、路由和與伺服器同步。這些功能使建立動態和互動式 Web 應用程式變得容易,而無需從頭開始構建所有內容。它可以與其他流行的 JavaScript 框架(如 React 和 AngularJS)結合使用來構建複雜的 Web 應用程式。

總的來說,Backbone.js 是構建 Web 應用程式的強大工具,並且擁有龐大的開發者社群來支援它的發展。

Backbone.js 模型

Backbone.js 模型是 Backbone.js 應用程式的基本構建塊。它們表示應用程式的資料和狀態,並用於與伺服器端資料進行互動。

Backbone.js 模型是一個 JavaScript 物件,它具有一組屬性和方法,允許它與資料互動。屬性表示模型儲存的資料,例如使用者的姓名、年齡或電子郵件地址。方法允許模型與資料互動,例如儲存、更新或刪除資料。

Backbone.js 模型也是事件驅動的,這意味著它們可以在資料更改時觸發事件。這允許應用程式的其他部分響應這些更改並相應地更新自身。

總而言之,Backbone.js 模型用於表示應用程式的資料和狀態,並允許透過屬性和方法以及事件驅動行為與伺服器端資料進行互動。

Backbone.js 檢視

Backbone.js 檢視是儲存在 Backbone.js 模型中的資料的視覺化表示。它們負責以特定格式(例如表格或表單)向用戶呈現資料。

檢視還負責處理使用者互動(例如點選或表單提交)並相應地更新模型。檢視通常定義為擴充套件 Backbone.View 類的 JavaScript 類,並且可以使用內建的 Backbone.js render() 方法將它們呈現到頁面。

從檢視訪問模型的資料

既然我們已經瞭解了 Backbone.js 中的模型和檢視是什麼,現在是時候深入研究程式碼,以瞭解如何在 Backbone.js 中從檢視訪問特定模型的資料。

示例

以下程式碼實現了同樣的功能:

<!DOCTYPE html>
<html>
   <head>
      <title>
         Access Model’s Data
      </title>
      <script src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.6/underscore-min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.4.1/backbone-min.js"></script>
   </head>
   <body>
      <script>
         var Person = Backbone.Model.extend({
            defaults: {
               name: 'Rahul Gupta', age: 26
            }
         });
         var PersonView = Backbone.View.extend({
            initialize: function(options) {
               this.model = options.model;
               this.listenTo(this.model, 'change', this.render);
            },
            render: function() {
               this.$el.html(this.model.get('name') + ' ' + this.model.get('age'));
            }, 
            updateName: function() {
               var newName = prompt("Enter a new name:");
               this.model.set({name: newName});
            }
         });
         var person = new Person();
         var personView = new PersonView({model: person});
         personView.render();
         document.write(personView.el.textContent);
         personView.updateName();
         document.write(personView.el.textContent);
      </script>
   </body>
</html>

程式碼理解

在這個程式碼片段中:

  • 我們建立了一個名為“Person”的模型,其中包含預設的姓名和年齡屬性。

  • 然後,我們建立了一個名為“PersonView”的檢視,它偵聽模型中的更改並相應地呈現檢視。

  • 然後,我們建立了一個模型例項,並將其作為選項傳遞給檢視的建構函式。

  • 在檢視的 render 函式中,我們使用 get 方法訪問模型的姓名和年齡屬性,並將它們顯示在頁面上。

  • 我們還建立了一個名為“updateName”的函式,允許使用者輸入新姓名並使用 set 方法更新模型的姓名屬性。

  • 當模型的姓名屬性更新時,檢視會使用新姓名重新呈現自身。

更新於:2023年2月6日

896 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告