Angular以获取跨控制器监听的功能

时间:2015-05-27 13:31:29

标签: jquery angularjs model-view-controller toggle

我已经问过这个但是没有达到以下目的。我正在尝试让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>

我已将toggle()添加为我想用于在view2.cshmtl中显示段落的函数。

view2.cshtml中的div:

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

我希望view1中的按钮与view2的toggleThis可见性相关联。单击button1时,应将view2中的文本设置为可见,同时正常执行其他功能。

Q1:我如何设置它以便在点击button1时设置toggleThis从隐藏到可见?

Q2:如何设置toggleThis最初被隐藏?

问题3:我应该在哪个Typescript文件中放置函数?

1 个答案:

答案 0 :(得分: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:

为了获得切换,您必须在Css中设置.toggleThis {display:none;}。

  • A3:

在我看来,你应该把你的功能放到你的控制器中。看看这个example,我使用了一些jquery。 我希望我一直很有帮助。