2017-05-11 8 views
-2

多くのタブを含むことのできるWebアプリケーションがあります(ブートストラップピルとタブを使用)。 ユーザーがコマンドをクリックしたとき(コマンドメニューから)、ユーザーが既存のタブ内のエンティティをクリックしたときにタブが追加されます(タブがレコードのリストを表示し、特定のレコードをクリックしたときレコード内のすべてのフィールドを表示する新しいタブが作成されます)。Javascript - ユーザーのシミュレーションをシミュレートする

既存のタブは、対応するピルの右側にある小さな「X」をクリックすると閉じます。

これは私が働いて解決策を見つけることができない一つのことを除いてスムーズに動作します:新しいタブが作成されると、ユーザーは、対応するタブが表示されるようにピルをクリックすることを余儀なくされ

Tabのコントローラーが初期化の終了時にイベントを送出するような仕組みを設定しました。これは、タブの作成を処理するコントローラーと同じコントローラーが受信したイベントです。イベントハンドラ内

は、私が が成功せず新しいタブをアクティブ にいくつかのオプションを試してみました。すべてのオプションはエラーなしで実行されますが、何も起こりません。

私が試したことのいくつか:

  1. angular.element(domElement).triggerHandler('click');thisポストで提案されている

  2. ソリューションズ、

  3. ...

彼らは、述べたようにすべてエラーなしで完了しますが、何もしませんそのトリックだ。

どんな提案も高く評価されます(特に、仕事をすることが判明した場合)。

EDIT

HTMLの丸薬とタブ:新しいタブコントローラ内のイベントの

<!-- Pills... --> 
     <li ng-repeat="One_Tab in Running_Tabs" id="Pill_{{One_Tab.Tab_ID}}"> 
      <a href="#{{One_Tab.Page_Type}}_{{One_Tab.Instance}}" data-toggle="tab"><b>{{One_Tab.Title}} ({{One_Tab.Instance}})</b> 
       <i class="glyphicon glyphicon-remove pull-right" 
        style="display:block;float:right;cursor:pointer;background:red;color:white;margin:5px 0 0 10px;top:-5px;border:solid 4px red;border-radius:11px" 
        ng-click="Close_Tab(One_Tab.Tab_ID)"></i> 
      </a> 
     </li> 
    </ul> 

    <!-- Tabs... --> 
    <div class="tab-content clearfix"> 
     <div class="tab-pane" ng-repeat="One_Tab in Running_Tabs" id="{{One_Tab.Page_Type}}_{{One_Tab.Instance}}" ng-include="Build_Page_Refrerence(One_Tab.Page_Type)"> 
     </div> 
    </div>   

エミッションここ

は、アプリケーションの関連部分を記述したコードのいくつかの作品です。

$rootScope.$emit("Activate_Me",$scope.Tab_Forward_Info.Pill_Name) ; 
イベントのフロント:

$rootScope.$on('Activate_Me', function (event, Pill_Name) { 

     console.log("Request received from new tab to become active: " + Pill_Name) ; 

     $("#Pill_Name").click() ; 

    }) ; 

注:Pill_Nameクリックをシミュレートする必要のある要素の名前を運びます。

イベントは送信され(トリガーされ)、正しいコードの要素で受信されます。

+1

を変更するための.removeclass("class")を使用することができます

その可能
$("#Pill_Name").addClass("class"); 

場合は、実行可能なplunker/jsfiddleまたは少なくともコードあなたを作ってくださいaddclassを使用他の人があなたの問題を迅速に再現できるようにするためにこれまでにありました。クリックをシミュレートする代わりに – Pengyy

+0

を使用すると、クリックをプログラム的に行うことはできませんか?同様に、関数呼び出しやイベントの排出? – tanmay

+0

@Pengyy、それはあまりにも複雑で、このためにプランナーを作ることはできません。私はコードの関連する部分を数分で追加します(BTW、下の投票に感謝...)。 – FDavidov

答えて

-2

私は 申し訳ありません、別の解決策を持っていない、あなたは、タブ

関連する問題