Angular 1.5变量在调用一次之前不起作用
Angular 1.5 variable not working untill it has been called once
所以我有下面的项目列表,用户有两个过滤选项。一个是选择菜单,效果很好,但另一个是按钮,单击它只会显示具有特定字段的对象。
我遇到的问题是,在第一次加载页面时,按钮更改的变量直到我单击按钮时才会显示,现在这只是为了调试,但无论哪种方式,它都不会改变列表中的过滤
<div flex="10">
<md-button type="submit" ng-click="showOnlyOffline = !showOnlyOffline">
{{showOnlyOffline == false ? 'Show All' : 'Only Show Offline'}}
</md-button>
</div>
{{showOnlyOffline }}
<div ng-repeat="data in dataArray |filter :{timezone: selectedTimeZone} | filter :{status: showOnlyOffline } " flex="45">
{{data.name}}
{{data.status}}
</div>
其中data.status
是布尔值,data.timezone
是字符串时区
在我的控制器中,我设置了
$scope.showOnlyOffline = false;
这不是一个大问题,但当你第一次点击它时,感觉好像有什么东西坏了,因为如果没有正确或错误,用户将不会得到任何反馈,而一旦我完成,就不应该有正确或错误
您可以更改引用如下并尝试吗。
$scope.model = {};
$scope.model.showOnlyOffline = false;
并在html中更改对model.showOnlyOffline 的引用
正如@ravichandra reddy所建议的,将基元值绑定到对象。
这背后的原因是"md按钮"创建了一个新的作用域,它根本不是孤立的,但不能访问基元值。这篇文章解释得很好https://github.com/angular/angular.js/wiki/Understanding-Scopes
试试这个,这里是为您的问题创建的工作小提琴
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<div flex="10">
<md-button type="submit" ng-click="showOnlyOffline = !showOnlyOffline">
{{showOnlyOffline && 'Only Show Offline' || 'Show All'}}
</md-button>
</div>
{{showOnlyOffline }}
<div ng-repeat="data in dataArray | filter :{status: showOnlyOffline } " flex="45">
{{data.name}} {{data.status}}
</div>
</div>
</div>
控制器
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.showOnlyOffline = false;
$scope.selectedTimeZone = new Date();
$scope.dataArray = [{ name: "asd", status: true, timezone: $scope.selectedTimeZone }, { name: "qwerty", status: false, timezone: $scope.selectedTimeZone }];
}
相关文章:
- 两个层次的手风琴除了第一次不起作用
- Jquery Onclick 事件函数第二次不起作用
- Jquery onblur 第二次不起作用
- css'不显示'第一次不起作用
- 我有一系列的处方受试者(a->B->C->a),但最后一步不起作用
- 下拉列表的onChange()第二次不起作用
- Jquery 键关闭事件仅在每秒按下一次时起作用
- 在 onKeyup AJAX 调用第一次不起作用或按回键时
- 数据表每 30 秒自动刷新一次不起作用
- Ajax 成功函数第二次不起作用
- Jquery 模态第二次不起作用
- 获取最接近的 Div 的 ID 两次不起作用
- JS运行两次不起作用
- 电话间隙介质记录第二次不起作用
- 添加按钮第二次不起作用
- Javascript计算器退格键第一次不起作用
- 我的点击第二次不起作用
- 下拉菜单不会显示超过一秒钟.不起作用
- 谷歌脚本每分钟触发一次不起作用
- 阵列推送第一次不起作用