2013-03-13 75 views
0

我試圖創建一個基本的CRUD設置來管理Ember中的用戶對象。我想我有我的模型和路線。我在努力管理:添加一個新的對象到ArrayController

A)(所有)用戶頁面的正確控制器設置。我認爲我應該創建一個ArrayController,但它似乎自動正常工作。我的Ember應用程序是否知道創建一個單獨的「用戶」對象?如果是這樣,怎麼樣? B)從InputFields傳遞數據。如果您在我的example中點擊「添加用戶」,我已經創建了一個表單來創建用戶。當你點擊「創建」時,我不確定如何獲取textField值,也不知道如何獲取textField值,只要我擁有這些值,我也不知道該如何處理這些值。我將如何更新我的控制器?

再次,這裏是我的代碼jsbin。任何指導將不勝感激。

回答

2

關於A): 我假設你指的是你的應用程序的以下路線。這個模型函數返回一個數組。因此Ember知道它應該使用ArrayController來渲染你的UsersRoute。

App.UsersIndexRoute = Ember.Route.extend({ 
    model: function() { 
    return App.User.find(); 
    } 
}); 

關於B):我已經更新了你的代碼 - >http://jsbin.com/ozilam/15/edit

我需要更新一些你們的名字(控制器和視圖)的匹配naming conventions of Ember

藉助Ember,您不必使用窗體並手動讀取這些值。相反,你創建一個新的記錄,當你輸入你的路線:

App.UsersNewRoute = Ember.Route.extend({ 
    setupController : function(controller){ 
    controller.set("content", App.User.createRecord({})); 
    } 
}); 

裏面你查看你您記錄的特性結合。正如你所看到的,我還用行動幫手更新了你的按鈕。

<script type="text/x-handlebars" data-template-name="users/new"> 
     <div class="row"> 
      <div class="six columns"> 
       <h3>New User Information</h3> 

        <form> 
         <label>First Name</label> 
         {{view Ember.TextField valueBinding='name_first'}}<br /> 
         <label>Last Name</label> 
         {{view Ember.TextField valueBinding='name_last'}}<br /> 
         <label>Email Address</label> 
         {{view Ember.TextField valueBinding='email_address'}}<br /> 
         <label>SSN</label> 
         {{view Ember.TextField valueBinding='ssn'}}<br /> 

         <button {{action create target="view"}} class="button">Create</button> 
         {{#linkTo users}}Cancel{{/linkTo}} 
        </form> 

      </div> 
     </div> 
    </script> 

正如形式的更改都會自動傳播到您的控制器,你可以訪問控制器對象:

App.UsersNewView = Ember.View.extend({ 
    didInsertElement: function() { 
    this.$('input:first').focus(); 
    }, 
    create: function(){ 
    console.log('view submitted'); 
    var newUser = this.get("controller.content"); 
    console.log(newUser.get("name_first")); 
    console.log(newUser.get("name_last")); 

    // HOW DO I PROCESS THIS FORM 

    } 
}); 

注:當我寫這個我意識到如果你在控制器而不是視圖中處理這個事件,它可能會更好,因爲它的數據修改任務。

相關問題