2015-06-16 91 views
1

我使用angularjs與實施「角材料」(在這裏:https://material.angularjs.org/latest/#/無法更改變量的值angularjs

我使用的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> 

所以,如果變量是「假」現在單擊菜單的項目時,應該是「真實的」。但仍然是錯誤的。怎麼了?

+0

你如何檢查該變量是否仍然是假的?我無法在代碼中的其他任何地方看到classContent。 – doldt

+0

對不起,現在更正。 –

+0

@doldt有什麼想法? –

回答

0

//請寫下下面的功能I控制器

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

//並在下面

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

查看更改嘗試以這種方式改變的變量:

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

使用$ parent屬性。我相信sidenav組件有它自己的作用域,鏈接在sidenav組件內。因此,爲了訪問你的範圍內的變量,你需要去上一級(在父範圍內)