2013-07-20 81 views
1

我正處於學習ember.js的初始階段。我試圖從一個應用程序,並在參照中存在的控制對象的另一個對象是卡..參考模板中的不同對象

{{#each employee in controller}} 
    <tr> 
    <td class="span2"><input type="checkbox" style="margin-left : 110px;"/></td> 
    <td class="span2">{{#linkTo 'employee' employee}}{{employee.empId}}{{/linkTo}}</td> 
    <td class="span2">{{employee.name}}</td> 
    <td class="span2">{{employee.age}}</td> 
    <td class="span2">{{employee.dob}}</td> 
    <td class="span2">{{employee.gender}}</td> 
    <td class="span2">{{employee.doj}}</td> 
    <td class="span2">{{#linkTo 'employee' employee}}{{employee.mgrId}}{{/linkTo}}</td> 
    <td class="span2">{{employee.package}}</td> 
    <td class="span2">{{employee.address}}</td> 
    <td class="span2">{{employee.phone}}</td> 
    <td> <button {{action "deleteEmployee" employee}}> Delete </button></td> 
    {{/each}} 

在這裏,我試圖使用id來獲取管理員的細節..

代碼對於指數路線是:

App.Router.map(function() { 
    this.resource('employee',{ 
     path: "/employee/:employee_id"}, 
     function() { 
      this.route('edit'); 
     } 
    ); 
    this.route('allEmployees'); 
    // put your routes here 
}); 

App.AllEmployeesRoute = Ember.Route.extend({ 
    model: function() { 
     //console.log(param.patient_id); 
     var employees = []; 
     for(var employee_id in App.Employees) 
     { 
      employees.push(App.Employees[employee_id]) 
     } 
     return employees; 

    } 
}); 


App.Employee = Ember.Object.extend({ 
     "empId":null, 
     "name":null, 
     "age":null, 
     "dob":null, 
     "gender":null, 
     "doj":null, 
     "mgrId":null, 
     "package":null, 
     "address":null, 
     "phone":null 
    }); 

// Code for event handling 
App.AllEmployeesController = Ember.ArrayController.extend({ 
     deleteEmployee:function(employee){ 
      var employees = this.get('model'); 
      for(var i=0; i<employees.length;i++) 
      { 
       if(employees[i].empId === employee.empId) 

       employees.removeAt(i); 

      } 

     console.log("deleting "+employee.empId); 
     } 
    } 
); 

所以這是如何做到這一點在燼?

編輯:

JSON記錄結構:

App.Employees = { 
    "1" : App.Employee.create({ 
     "id" : "1", 
     "empId" : "emp1", 
     "name" : "Employee 1", 
     "age" : "23", 
     "dob" : "17/12/89", 
     "gender" : "male", 
     "doj" : "9/1/12", 
     "mgrId" : "emp6", 
     "package" : "300000", 
     "address" : "address 1", 
     "phone" : "9999999999" 
    }), 
    "2" : App.Employee.create({ 
     "id" : "2", 
     "empId" : "emp2", 
     "name" : "Employee 2", 
     "age" : "24", 
     "dob" : "18/1/90", 
     "gender" : "female", 
     "doj" : "20/2/13", 
     "mgrId" : "", 
     "package" : "350000", 
     "address" : "address 2", 
     "phone" : "9437543985" 

    }), 
    "3" : App.Employee.create({ 
     "id" : "3", 
     "empId" : "emp3", 
     "name" : "Employee 3", 
     "age" : "25", 
     "dob" : "19/2/91", 
     "gender" : "male", 
     "doj" : "12/12/11", 
     "mgrId" : "emp2", 
     "package" : "300000", 
     "address" : "address 3", 
     "phone" : "3454395943" 
    }), } 
+0

你可以將你的控制器發佈到你想要建立引用的地方嗎? – intuitivepixel

回答

1

您可以使用needs API從您的特定的控制器訪問其他控制器。

needs: 'manager', 
managerBinding: 'controllers.manager' 

從那裏,如果manager是你想要的對象,你可以在控制器通過this.get('manager')引用它和manager相應的模板英寸

+0

darshan謝謝你的回答。其實我已經把所有員工記錄都作爲一個字段以mgrId作爲json對象。在用戶界面上,我將它作爲鏈接呈現..所以當用戶點擊mgrId時。他應該被引導到經理記錄,這也是一個僱員..所以想要加載該特定記錄的基礎上的ID ..我在記錄結構的問題.. –

+0

它看起來不像' manager'是'employee'的父路由。在這種情況下,你需要加載這條記錄。一個好的地方就是路由的'setupController'。一般來說,加載/嵌入這些依賴記錄是一個好主意,所以你不必在以後明確加載。 –