我是MVC和Angular的新手。
我有两个控制器和两个相关的视图,exampleview1.cshtml / ts和exampleview2.cshmtl / ts。
在exampleview1.cshtml中我有一个按钮,它使用Angular指令'ng-click'来调用exampleview1.ts中的函数。
在exampleview2.cshmtl中我有一个包含一些文本的段落。本段包含在div中,该div使用'ng-if'指令从最初隐藏div的exampleview2.ts调用函数。这是使用jQuery的.hide()方法完成的。
我希望exampleview1中的按钮与exampleview2中的文本绑定。单击此特定按钮时,应将exampleview2中的文本设置为可见(可能使用jQuery的.toggle()或.show()方法)。
如何设置它以便在单击按钮时,它会正常调用与其关联的事件,还会告诉exampleview2.ts中的函数从.hide()切换到.show()?目前,绑定到'ng-if'指令的函数如下所示:
viewScope.testingText = function () {
$('#divcontainstext').hide();
return true;
};
所以目前它被强制隐藏但我不确定是否需要更改此功能以适应.show()行等。我不确定如何将这些功能绑在一起。< / p>
答案 0 :(得分:0)
在example2.html中使用 ng-show 指令,该指令附加了一个范围值,告诉它为true或false。
广播来自example1.html内部的点击事件,以便当这个事件在example2.html中收听时,它会更改ng-show&#39;范围变化值。
<强> example1.html的强>
<button ng-click="change()">Click </button>
app.controller('example1Ctrl,function($rootScope,$scope){
$scope,change=function(){
$rootScope.broadcast('visibleStatus','true');
}
}
<强> example2.html:强>
<div ng-show="visible">//some contents that needs to be hidden/shown
</div>
app.controller('example2Ctrl',function($rootScope,$scope){
$scope.visible=false;
$rootScope.$on('visibleStatus',function(event,data){
$scope.visible=data;
}
}
这可能不是要复制和运行的确切代码,但请尝试使用此方法,并可能使用您自己的相关代码。