javascript - 将范围变量传递给 ng-click 中的函数

标签 javascript angularjs

所以我知道我一定在这个问题中遗漏了 javascript 的一些基本部分,但无论如何它都在这里:

我有一个 Controller ,其中声明了一个变量:

$scope.IsStartDatePickerHidden = true;
$scope.IsEndDatePickerHidden = true;

我有一个按钮,其 ng-click 设置为转到我的 Controller 中的一个函数。如果这个函数接受一个可以更改值的参数,那就太好了:

<button type="button" ng-click="showDatePicker(IsStartDatePickerHidden)" >

 $scope.showDatePicker = function(showDatePicker)
 {
     showDatePicker = false;
 }

当我逐步执行此代码时,函数 showDatePicker 会更改传入的参数值,但似乎不会更改 Controller 中变量的值,因此什么也没有发生。我确信这与通过引用传递有关。我只是不确定如何传递它,以便 $scope.IsStartDatePickerHidden 或 $scope.IsEndDatePickerHidden 会根据我传递的是哪一个而改变。

最佳答案

Brad 的回答是正确的,但以防万一您想要更通用的东西,以便您可以更改任何范围变量的值:

<button type="button" ng-click="showDatePicker('IsStartDatePickerHidden')" >

 $scope.showDatePicker = function(varName)
 {
     $scope[varName] = false;
 }

这不一定是好的做法,但通常很有用。说到这里,您可以在 ng-click 中进行分配:

<button type="button" ng-click="IsStartDatePickerHidden = false" >

关于javascript - 将范围变量传递给 ng-click 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899638/

相关文章:

javascript - 从 d3.js 中的线图中删除线

javascript - 嵌套 Div(在 ui View 中)不会扩展到整个窗口宽度

angularjs - 检测用户何时离开窗口

javascript - getElementsByClassName 产生错误 "undefined"

javascript - 通过ajax导入JSON并循环

angularjs - 关闭电子邮件验证

javascript - Angularjs - UI 路由器和 Bootstrap 选项卡

css - 升级 Angular 消息会影响我的布局

javascript - 无法读取 nodeJS 中的 URL 编码

php - $_FILES 何时创建/清除 |与 javascript 重新加载的关系