通过参数传递功能并显示它

时间:2017-11-06 10:06:50

标签: angularjs

我将使用一个函数的params传递给另一个函数时遇到问题。

我正在传递这样的参数:

        <div ng-click="changeView('distance')">EXPAND
        </div>

在我的控制器中

$scope.changeView = function (params) {
        $scope.currentView = params;
    };

我有更多页面有更多选项。在我的选择中,我选择团队,但我想根据我的changeView显示。

这是我的团队选择

<select style="width: 100%;" ng-model="selectedTeam" ng-options="x.team_name for x in teams" ng-change="changeLocation(selectedTeam.team_id);" 
</select>

这是我的控制器中的changeLocation

 $scope.changeLocation = function (teamId) {
        $scope.showPlayer = true;
        if ($scope.currentView == undefined) {
            $state.go('activity-statistic.activity-statistic-team-heart', { teamId: teamId }, { reload: false });
        }
        else {
            $state.go('activity-statistic.activity-statistic-team-' + $scope.currentView + '', { teamId: teamId }, { reload: false });
        }

    };

当我想要更改位置时,我的$ scope.curentView始终是未定义的。

知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

看起来你的$scope.changeView$scope.changeLocation都属于不同的控制器$ scope只在当前控制器中显示其范围为什么显示undef

您可以使用$rootscope代替

等全局范围
$scope.changeView = function (params) {
        $rootscope.currentView = params;
    };

然后改变

 if ($scope.currentView == undefined)

if ($rootscope.currentView == undefined)