2015-04-27 24 views
7

Tôi đang sử dụng Meteor với AutoForm & Bộ định tuyến sắt.Tuyến đường đến dữ liệu mới được gửi bởi tự động bằng Meteor bằng bộ định tuyến sắt?

Tôi có tự động điền dữ liệu và tôi muốn chuyển hướng đến trang dữ liệu tôi đã thêm sau khi chèn thành công. Tôi nên làm như thế nào?

Đây là Mục đích:

{{#autoForm collection="Products" id="add" type="insert"}} 
    <h4 class="ui dividing header">Products Information</h4> 
     {{> afQuickField name='name'}} 
     {{> afQuickField name='info'}} 
    <button type="submit" class="ui button">Insert</button> 
{{/autoForm}} 

Sắt Router:

Router.route('/products/:_id', { 
    name: 'page', 
    data: function() { return Products.findOne(this.params._id);} 
}); 

Callback/Hooks

AutoForm.hooks({ 
    add: { 
    onSuccess: function(doc) { 
     Router.go('page', ???); 
    } 
    } 
}); 
+0

http: // stackoverflow .com/questions/26 851878/meteor-ironrouter-passing-multiple-properties-on-router-go –

Trả lời

6

Móc AutoForm sẽ trở lại cho bạn những docid. Xem: https://github.com/aldeed/meteor-autoform#callbackshooks

this.docId: Thuộc tính _id của doc gắn liền với các hình thức, nếu có một, hoặc cho một type = 'chèn' hình thức, các _id của doc mới chèn, nếu đã được chèn vào.

Vì vậy, sử dụng:

Router.go('page',{_id: this.docId}); 
0

Theo doc trên github, chữ ký thay đổi: đừng quên để khai báo các hình thức hoặc null để áp dụng các móc.

cho tất cả các hình thức

AutoForm.addHooks(null,{ 
    onSuccess: function(formType, result) { 
     Router.go('page',{_id: this.docId}); 
    } 
}); 

cho hình thức cụ thể

AutoForm.addHooks(['yourForm'],{ 
    onSuccess: function(formType, result) { 
     Router.go('page',{_id: this.docId}); 
    } 
}); 

tốt nhất là để kiểm tra cập nhật chữ ký: https://github.com/aldeed/meteor-autoform#callbackshooks

0
onSuccess: function(formType, result) { 
    Router.go(
     ['adminDashboard', result, 'Edit'].join(''), 
     {_id: this.docId} 
    ); 
}, 
+1

Mặc dù đoạn mã này có thể là giải pháp, [bao gồm giải thích] (// meta.stackexchange.com/questions/114762/explaining-entirely-‌ Các giải pháp dựa trên mã) thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho người đọc trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn. – xskxzr

Các vấn đề liên quan