我有一个应用程序,其中侧边栏将显示待办事项消息列表和已处理消息列表(使用选项卡导航),单击它将在侧边栏右侧的主要部分显示消息的详细信息。右边的视图有一些表单输入,用户填写消息的详细信息,按下按钮,消息从待办事项移动到已处理。
<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 和 $routeProvider 在 URL 哈希更改时提供模板。当试图更新模板视图中的 $scope 对象时,侧边栏的列表不会更新。
应用程序.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 更新侧边栏?