Angularjs ng单击切换变量并更新整个页面

Angularjs ng单击切换变量并更新整个页面,angularjs,Angularjs,我有一个名为RecruiterDashboard.IsColdList的全局变量。它是一个决定运行一个或另一个指令的布尔值。加载页面时,通过正常脚本将变量设置为true或false 我想做的是允许用户通过ng click切换,而不是显示其他指令,因此我进行了ng click并将RecruiterDashboard.IsColdList从“false”设置为“true”。问题是这不会重新加载角度页面并关闭控制器。如何使页面再次在控制器中运行 这就是我到目前为止所做的: $scope.showCol

我有一个名为
RecruiterDashboard.IsColdList
的全局变量。它是一个决定运行一个或另一个指令的布尔值。加载页面时,通过正常脚本将变量设置为true或false

我想做的是允许用户通过ng click切换,而不是显示其他指令,因此我进行了ng click并将
RecruiterDashboard.IsColdList
从“false”设置为“true”。问题是这不会重新加载角度页面并关闭控制器。如何使页面再次在控制器中运行

这就是我到目前为止所做的:

$scope.showColdList = function (projId) {
        RecruiterDashboard.isColdList = true;
    };
我想指出,我没有使用角度布线。我使用的是C#MVC

我的逻辑是这样的:

callPanelControllers.controller('callPanelController', function($scope) {
    $scope.isColdList = RecruiterDashboard.isColdList;
});

callPanelControllers.controller('incomingCall', function ($scope) {
     $scope.showColdList = function () {
        RecruiterDashboard.isColdList = true;
    };
});

<div ng-click="showColdList()" ng-controller="incomingCall"></div>
<div ng-controller="callPanelController">
    <cold-list ng-show="isColdList"></cold-list>
</div>
callPanelController.controller('callPanelController',函数($scope){
$scope.isColdList=RecruiterDashboard.isColdList;
});
CallPanelController.controller('incomingCall',函数($scope){
$scope.showColdList=函数(){
RecruiterDashboard.isColdList=true;
};
});

我开发了一种黑客技术,这样给定元素中的所有内容都会在某个变量发生变化时重新加载

csapp.directive("csReloadOn", ["$timeout", function ($timeout) {

    var getTemplate = function () {
        return '<div ng-if="doRefreshPageOnModeChange"><div ng-transclude=""></div></div>';
    };

    var linkFunction = function (scope, element, attrs) {
        scope.doRefreshPageOnModeChange = true;

        scope.$watch(attrs.csReloadOn, function (newVal, oldVal) {
            if (newVal === oldVal) return;

            scope.doRefreshPageOnModeChange = false;
            $timeout(function () { scope.doRefreshPageOnModeChange = true; }, 100);
        });
    };

    return {
        restrict: 'A',
        transclude: true,
        template: getTemplate,
        link: linkFunction
    };
}]);
csapp.directive(“csReloadOn”,[“$timeout”,函数($timeout){
var getTemplate=函数(){
返回“”;
};
var linkFunction=函数(范围、元素、属性){
scope.doRefreshPageOnModeChange=true;
作用域$watch(attrs.csReloadOn,函数(newVal,oldVal){
如果(newVal==oldVal)返回;
scope.doRefreshPageOnModeChange=false;
$timeout(函数(){scope.doRefreshPageOnModeChange=true;},100);
});
};
返回{
限制:“A”,
是的,
模板:getTemplate,
link:linkFunction
};
}]);
你可以像这样使用它

     <div cs-reload-on="{{pagemode}}"> 
           <!-- your html here-->     
      </div>


因此,它只是删除并重新呈现div内部的完整内容,因此所有内容都将重新初始化,等等。

angular应该“重新加载”。你能添加其余的相关代码吗?它在单个控制器中触发内容,但不触发其他控制器。你如何控制显示哪个指令?你能按照Acsisr的建议粘贴更多的代码吗?我添加了更多的细节