我正在使用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;单击菜单项时。但仍然是假的......出了什么问题?
答案 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组件内。因此,为了访问范围中的变量,您需要更高一级(在父范围内)