2015-05-27 69 views
1

我已經問過這個,但還沒有達到以下內容。我正試圖讓Angular通過MVC中的控制器來控制段落的可見/隱藏。我使用的是Typescript,而不是Javascript。角度得到功能監聽控制器

我有兩個控制器和兩個視圖,view1.cshtml/view1.ts和view2.cshmtl/view2.ts。

在view1.cshtml我有一個按鈕:

<a class="Button" id="button1" data-ng-click="minorTask(); toggle()">Click</a> 

我在切換添加(),因爲我想用來顯示view2.cshmtl段落的功能。

在view2.cshtml股利:

<div id="toggleThis"> 
    <p>Some text<p> 
<div> 

我想在廠景按鈕被捆綁到從視圖2的toggleThis知名度。當button1被點擊時,它應該將view2中的文本設置爲可見,而它正常執行另一個功能。第一季度:我如何設置它,以便當點擊button1時,它將toggleThis從隱藏狀態設置爲可見狀態?

Q2:如何設置toggleThis最初是隱藏的?

問題3:我應該在哪個Typescript文件中放入函數?

+0

只有在控制器中使用工廠/服務或注入控制器服務纔有可能。您在第一個控制器的範圍中有一個變量,並且想要在第二個控制器中訪問它。你應該看到https://docs.angularjs。org/api/ng/service/$ – Vineet

+0

我是新來的角度,不明白我應該把$控制器指令。我是否需要將它放在toggleThis和button1中? –

+2

http://stackoverflow.com/questions/25417162/how-do-i-inject-a-controller-into-another-controller-in-angularjs – Vineet

回答

1

如果我收到了你的問題:

  • A1:

HTML:

<a class="Button1" data-ng-click=minorTask()>Click</a> 

的CSS:

.toggleThis{.....; display: none;} //Saying toggleThis is initialized has Hidden 

myViewController:

myApp.controller("myController", ["$scope", function($scope){ 
    $scope.minorTask = function(){ //triggers when called by button1 being clicked 

    //change toggleThis from hidden to block 
    angular.element('toggleThis').css('display','block'); 
    } 
}}) 
  • A2:

爲了得到toggleThis intially隱藏你必須設置.toggleThis {顯示:無;}在你的CSS 。

  • A3:

在我看來,你應該把你的功能集成到你的控制器之前已經顯示。看看這個example,我用它做了一些jquery。 我希望我一直很有幫助。

+0

感謝您的幫助!我會盡力實施它。 –