gpt4 book ai didi

javascript - 从另一个 Controller 更改变量值

转载 作者:行者123 更新时间:2023-11-30 10:18:36 25 4
gpt4 key购买 nike

我用 Angular JS 创建了一个应用程序。在应用程序中,我有三个 Controller 。第一个 Controller MainController 在 body 标签中,其中我有另外两个 Controller FileController 和 TypeController。

在 TypeController 中,我有一个模型名称为 data.selectedFileTypes 的选择框,它显示了几个文件名。现在,在 FileController Controller 中,我有另一个选择框,模型名称为 fileproperty.allowsFiles,并且具有 YesNo 值。第一次在 FileController Controller 中初始化。

但是,当我从模型 data.selectedFileTypes 的选择中选择不同的文件时,如何从文件选择

谁能告诉我一些解决办法

html

<body ng-controller="MainController">
:
:
<div ng-controller="TypeController">
<select ng-model="data.selectedFileTypes" ng-options="type.name for type in config.fileTypes ng-change="select()">
</select>
</div>
:
:
<div ng-controller="FileController">
<select ng-model="fileproperty.allowsFiles" ng-options="option.value as option.desc for option in files.options"></select>
</div>
:
:
</body>

脚本

app.controller('TypeController', function($rootScope, $scope)
{
$scope.select = function()
{
:

:
}
}

app.controller('FileController', function($rootScope, $scope)
{
$scope.fileproperty.allowsFiles = 'No';
}

最佳答案

试试这个方法。

app.controller('MainController', function($rootScope, $scope)
{
$scope.select = function()
{
:
$rootScope.selectedFiles = $scope.data.selectedFileTypes;
:
}
}

在你的第二个 Controller 中

app.controller('FileController', function($rootScope, $scope)
{
$scope.$watch('selectedFiles', function () {
$scope.fileproperty.allowsFiles = 'No';
}, true);

}

您也可以在这里使用 $broadcast$on 来处理这种情况:

app.controller('MainController', function($rootScope, $scope)
{
$scope.select = function()
{
$scope.$broadcast('someevent');
}
}

在你的第二个 Controller 中

app.controller('FileController', function($rootScope, $scope)
{
$scope.$on('someevent', function () {
$scope.fileproperty.allowsFiles = 'No';
});

}

关于javascript - 从另一个 Controller 更改变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22532011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com