2015-03-30 109 views
0

我有一個菜單,包含很多按鈕。每次我點擊一個按鈕,我想要一個確定的控制器顯示。用按鈕處理多個控制器

我與AngularJs一個初學者,我無法找到「顯示XXXXCtrl」

遺漏碼是這裏的代碼:

app.controller('menuCtrl', function($scope) { 
    $scope.showtest = function(key, val) { 
     //display testCtrl 
    } 

    $scope.showCustomers = function(key, val) { 
     //display customersCtrl 
    } 
}); 

在這裏看到完整的代碼: http://plnkr.co/edit/tYFNcYwK8uEJzZGCPQxB?p=preview

一開始我只是customersCtrl了,誰顯示數據從customersCtrl,所以{{x.titre}}和其他標籤被顯示的數據,但由於我添加了其他控制器,我不知道爲什麼{{x.titre}}未更換了

請幫幫忙,我是新來angularJs,這是一個有點複雜,我:(

+1

你的意思是你要能夠爲客戶和測試控制器之間進行切換? – 2015-03-30 17:35:37

+0

是的,最終會添加其他控制器 – user 2015-03-30 17:37:36

回答

1

一種方法是讓你的菜單控制器包含你試圖隱藏/顯示的兩個視圖。

<div ng-app="myApp" ng-controller="menuCtrl"> 
    <button href="#" ng-click="showtest()">display testCtrl</button> 
    <button href="#" ng-click="showCustomers()">display customersCtrl</button> 
    <div ng-controller="testCtrl" ng-show="showTestView">...</div> 
    <div ng-controller="customersCtrl" ng-show="showCustomerView">...</div> 
</div> 

然後在你的控制器,你可以做

$scope.showtest = function(key, val) { 
    $scope.showTestView = true; 
} 

$scope.showCustomers = function(key, val) { 
    $scope.showCustomerView = true; 
} 

http://plnkr.co/edit/k6YScPNv6SmxWuG3GIfv?p=preview

+0

大大的大謝謝! – user 2015-03-30 17:47:59

0

$route documentation看看。在頁面末尾有一個關於通過路由導航切換控制器的很好的例子。

您可能會特別關注配置$ routeProvider的示例script.js。

讓我知道這是否有幫助。

+0

我不知道這就是我想要的。因爲我不想在控制器之間切換時更改網址 – user 2015-03-30 17:43:21

+2

@user您應該考慮使用它,以便用戶可以將書籤的狀態添加爲書籤 – 2015-03-30 17:50:15

+1

也許這不是一個不改變網址的好主意,因爲如果用戶點擊F5國家將會失去,從而導致糟糕的經歷。但要這樣說,我需要更多地瞭解你的背景。 – 2015-03-30 17:51:02