【问题标题】:Angular to get functions to listen across controllersAngular 获取跨控制器监听的函数
【发布时间】:2015-08-09 15:07:44
【问题描述】:

我已经问过了,但没有达到以下要求。我正在尝试让 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 设置为最初隐藏?

Q3:我应该将函数放在哪个 Typescript 文件中?

【问题讨论】:

标签: jquery angularjs model-view-controller toggle


【解决方案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 最初隐藏,您必须在 Css 中设置 .toggleThis{display:none;}。

  • A3:

在我看来,您应该将您的功能放入您的控制器中,如前所述。看看这个example,我使用了一些 jquery。 希望对您有所帮助。

【讨论】:

  • 感谢您的帮助!我会努力实现的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-28
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 2012-04-29
相关资源
最近更新 更多