Để tạo một hình thức phụ trợ qua ui_component, tôi xác định sau đây trong tập tin cấu hình để hiển thị các nút tiết kiệm và saveAndContinue Nút
<item name="buttons" xsi:type="array">
<item name="save" xsi:type="string">namespace\module\Block\Adminhtml\Edit\SaveButton</item>
<item name="save_and_continue" xsi:type="string">namespace\module\Block\Adminhtml\Edit\SaveAndContinueButton</item>
</item>
Tương ứng, hai tệp SaveButton.php
và SaveAndContinueButton.php
được tạo và cả hai thực hiệnButtonProviderInterface
Như tôi biết, nút chủ yếu được kết xuất từ một getButtonData
chức năng. XemSaveAndContinueButton.php
public function getButtonData()
{
$TodoItemId = $this->getTodoItemId();
$data = [];
if ($TodoItemId) {
$data = [
'label' => __('Save and Continue Edit'),
'class' => 'save',
'data_attribute' => [
'mage-init' => [
'button' => ['event' => 'saveAndContinueEdit'],
],
],
'sort_order' => 80,
];
}
return $data;
}
Các data_attribute
là nơi mà tôi không hiểu. Làm thế nào để nó biết tập tin nào để xử lý lưu yêu cầu?
Nếu chúng tôi kiểm tra SaveButton.php
, chúng tôi đã thấy
$data = [
'label' => __('Save TodoItem'),
'class' => 'save primary',
'data_attribute' => [
'mage-init' => ['button' => ['event' => 'save']],
'form-role' => 'save',
],
'sort_order' => 90,
];
Tôi biết trong tập tin cấu hình ui_component, có
<item name="submit_url" xsi:type="url" path="path/to/save"/>
Cả hai hành động thực hiện thành công cùng một Save.php
tập tin và nó có ý nghĩa. Điều khiến tôi bối rối là nhiều data_attribute
và làm thế nào để SaveAndContinueButton
vượt qua tham số " back
" để nó biết ở cùng một trang thay vì đi vào lưới (thông thường lưới là điểm vào của một biểu mẫu, còn gọi là trang chỉnh sửa).
Nếu chúng ta nhìn khác deleteButton
, đó là một cảnh quan khác
$data = [
'label' => __('Delete'),
'class' => 'delete',
'on_click' => 'deleteConfirm(\'' . __(
'Are you sure you want to do this?'
) . '\', \'' . $this->getDeleteUrl() . '\')',
'sort_order' => 20,
];
Nó trực tiếp thực hiện sự kiện onClick JavaScript. Bất kỳ ý tưởng / đề nghị sẽ được đánh giá cao. cảm ơn
Một câu hỏi nữa: sự khác biệt của data_attribute
và on_click
? hoặc lợi thế hơn một cái khác?