可以說我有一個瀏覽頁面和一個詳細頁面。我也有瀏覽控制器和細節控制器。瀏覽頁面顯示人員列表。當用戶點擊一個人鏈接時,我將person.id
作爲查詢字符串參數傳遞給詳細信息頁面。這裏都很好。從一個控制器向另一個控制器傳遞值
現在,我有另一種觀點,瀏覽和細節應該在同一個頁面。我如何通過person.id
從一個div(與ng-controller='BrowseCtrl'
)到另一個div(與ng-controller='DetailCtrl'
)?
目標是使控制器儘可能通用。您可以使用
function BrowseCtrl($scope) {
$scope.persons = db.getPersons();
$scope.getPerson = function (personId) {
$location.path('/person').search({
id: personId;
});
};
}
function DetailCtrl($scope, $location) {
$scope.person = db.getPerson($routeParams.id);
}
//singlepage.html
<div ng-controller="BrowseCtrl">
<ul id="thumbList">
<li ng-repeat="person in persons">
<img ng-src="{{person.photo}}" ng-click="getPerson(person.id)"/>
</li>
</ul>
</div>
<div ng-controller="DetailCtrl">
Name: {{person.name}}
</div>
爲什麼你需要通過person.id作爲查詢字符串PARAM?當然,你正在構建一個單頁的應用程序,你不應該需要超過一頁。 – Neil 2013-05-09 11:20:16
該URL看起來像'index.html#view/person?id = 1'。它應該是'index.html#view/person/1'嗎?如果是這樣,我該如何獲取個人ID?我們假設我不傳遞查詢字符串。如何從'BrowseCtrl'範圍內的視圖調用'DetailCtrl'中的方法? – tempid 2013-05-09 11:28:27