2016-09-15 5 views
0

Ниже представлен компонент Ojet, и я хочу передать «p_id» из компонента OJet в функцию «contextMenuItemSelect» в меню.У меня есть список (ojListView), в котором есть контекстное меню (ojMenu). Как передать переменную из списка в функцию выбора меню.?

Ui.item.children («a»). Text() может выбрать выбранную опцию, но я хочу получить p_id соответствующего элемента списка и на основе выбранной опции будет перемещаться для редактирования или просмотра ,

Как это можно сделать ???

Ojet Компонент

 <script type="text/html" id="server_template"> 
      <li data-bind="attr: {id: $data['p_id']}"> 
       <div class="oj-flex"> 

        <div class="oj-lg-12 oj-md-12 oj-sm-12"> 
         <div class="oj-flex row portfolio-list"> 
          <!-- Portfolio Name and Description --> 
          <div class="oj-lg-4 oj-sm-12"> 
           <h2> 
            <a href="#" data-bind="text: p_id, click: getView"></a> 
           </h2> 

           <span class="data"><span data-bind="text: desc"></span></span> 

          </div> 

           <div id="menubutton-container"> 
            <button id="menuButton2" 
             data-bind=" 

             ojComponent: {component: 'ojButton', display: 'icons', 
             icons: {start:'demo-icon-font demo-gear-icon-16'}, 
             label: 'Button with two icons and no text', 
             menu: '#myMenu2'}"> 
            </button> 

           // The below span gives the list ID correctly 

           <span data-bind="text: p_id"></span> 

            <ul id="myMenu2" data-bind="attr:{title: p_id},ojComponent: {component: 'ojMenu', select:contextMenuItemSelect}" style="display:none"> 

           // The below span always gives the 1st id on the list 

            <span data-bind="text: p_id"></span> 
            <!-- ko template: {name: 'menuItemTemplate', foreach: items, as: 'item'} --> 
            <!-- /ko --> 
            </ul> 
           </div> 

         </div> 


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

меню Шаблон

<script type="text/html" id="menuItemTemplate"> 
    <li data-bind="css: {'oj-disabled': item.disabled}"> 
    <a href="#" data-bind="text: name"></a> 
    <!-- ko if: item.items --> 
    <ul data-bind="template: {name: 'menuItemTemplate', foreach: item.items, as: 'item'}"> 
    </ul> 
<!-- /ko --> 
</li> 

JS Функция

self.contextMenuItemSelect = function(event, ui) { 

     console.log(ui.item); 
     var option = ui.item.children("a").text(); 
    } 

ответ

0

Это помогло бы иметь рабочий код, чтобы попробовать вместо этого надреза домашних животных, но сначала я попытаюсь убедиться, что элемент UL (имеющий привязку ojMenu) имеет уникальный атрибут идентификатора. Из примера кода выглядит, что все меню имеют один и тот же идентификатор «myMenu2». Я не знаю, как ojMenu работает точно, но если он ищет элементы по идентификатору, это может вызвать проблемы (более того, это неверный код HTML при наличии идентификаторов дубликатов)

 Смежные вопросы

  • Нет связанных вопросов^_^