2

サイドバーに To Do メッセージのリストと処理済みメッセージのリスト (タブで移動) が表示されるアプリがあり、それをクリックすると、サイドバーの右側のメイン セクションにメッセージの詳細が表示されます。右側のビューには、ユーザーがメッセージの詳細を入力し、ボタンを押すと、メッセージが to-do から処理済みに移動するフォーム入力がいくつかあります。

  <div id="sidebar" data-ng-controller="MessageController">
    <ul class="nav nav-tabs" id="message-tab">
      <li><a href="#to-do" data-toggle="tab">To-do</a></li>
      <li><a href="#processed" data-toggle="tab">Processed</a></li>
    </ul>

    <div class="tab-content">
      <div class="tab-pane" id="to-do">
        <table class="table table-hover">
            <tr data-ng-repeat="message in todoMessages | orderBy: id">
              <td>
                  <a href="#/todo/{{message.id}}" class=""><span>{{message.name}}  </span></a> <small style="float:right;">{{message.type}}</small>
              </td>
            </tr>

       </table>

      </div>
      <div class="tab-pane" id="processed">
        <table class="table table-hover">

            <tr data-ng-repeat="message in processedMessages | orderBy: id">
              <td>
                <a href="#/processed/{{message.id}}" class=""><span>{{message.name}}  </span></a> <small style="float:right;">{{message.type}}</small>
              </td>
            </tr> 

       </table>

      </div>
    </div>
  </div>

  <div id="main-panel">
    <div class="message-preview " data-ng-view="">
    </div>            
  </div>

私が抱えている問題は、右側のメイン セクションが ng-view を使用し、URL ハッシュが変更されたときにテンプレートを提供する $routeProvider を使用していることです。テンプレート ビューで $scope オブジェクトを更新しようとすると、サイドバーのリストが更新されません。

app.js

var app = angular.module('messageApp', []);

app.config(function ($routeProvider) {
$routeProvider
    .when('/todo/:messageId',
                    {
            controller: 'MessageController',
            templateUrl: 'app/partials/todoView.html'
                    })
     .when('/processed/:messageId',
                    {
            controller: 'MessageController',
            templateUrl: 'app/partials/processedView.html'
                    })
    .otherwise({ redirectTo: '/' });
});

ただし、サイドバーにある同じマークアップをテンプレート ビューに配置すると、スコープ オブジェクトを操作するとリストが更新されることがわかるので、双方向バインディングは適切に機能します。

私は何を間違っていますか? ng-controller を使用してサイドバーを適切に更新するにはどうすればよいですか?

4

0 に答える 0