无法更改变量值angularjs

时间:2015-06-16 07:56:36

标签: javascript html angularjs

我正在使用angularjs实现" Angular Material" (这里:https://material.angularjs.org/latest/#/

我使用SideNav组件:https://material.angularjs.org/latest/#/demo/material.components.sidenav在菜单链接中点击打开横向容器。它现在正在工作......但是当我单击菜单项时,我应该将布尔变量的值从false更改为true ..这不会发生。我不确切知道为什么。在我的控制器中,我有这部分代码:

$scope.toggleRight = buildToggler('right');
        $scope.myBoolean = false;
        /**
         * Build handler to open/close a SideNav; when animation finishes
         * report completion in console
         */
        function buildToggler(navID) {
            var debounceFn =  $mdUtil.debounce(function(){
                $mdSidenav(navID)
                    .toggle()
                    .then(function () {
                        $log.debug("toggle " + navID + " is done");
                    });
            },300);
            return debounceFn;
        };
        $scope.close = function () {
            $mdSidenav('right').close()
                .then(function () {
                    $log.debug("close RIGHT is done");
                });
        };

它是打开和关闭容器的部分。然后在我的HTML

                <li>
                    <a data-ng-click="myBoolean = true;">
                        Open the container
                    </a>
                </li>

所以,如果变量是&#34;假&#34;现在应该是&#34; true&#34;单击菜单项时。但仍然是假的......出了什么问题?

2 个答案:

答案 0 :(得分:0)

//只需写下以下函数i controller

$scope.openContainer = function () {
    $scope.myBoolean = true;
}

//并在View中更改

<li>
    <a data-ng-click="openContainer()">Open the container</a>
</li>

答案 1 :(得分:0)

尝试以这种方式更改变量:

<li>
                <a data-ng-click="$parent.myBoolean = true;">
                    Open the container
                </a>
            </li>

使用$ parent属性。我相信sidenav组件有自己的范围,链接在sidenav组件内。因此,为了访问范围中的变量,您需要更高一级(在父范围内)