Javascript 视图不随单击而更改
在这把小提琴中: 当我点击div元素“Flip!”时,表元素没有被隐藏。当我改变由Javascript 视图不随单击而更改,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,在这把小提琴中: 当我点击div元素“Flip!”时,表元素没有被隐藏。当我改变由ng show 地图正在更新,但似乎未应用 我尝试在调用flip时将$scope.$apply添加到块中,但结果相同。当基础地图数据结构更改时,如何更新ng show的状态 小提琴代码: <div ng-app="myapp" ng-controller="FirstCtrl"> <table class="table table-striped"> <tr
ng show
地图正在更新,但似乎未应用
我尝试在调用flip时将$scope.$apply
添加到块中,但结果相同。当基础地图数据结构更改时,如何更新ng show的状态
小提琴代码:
<div ng-app="myapp" ng-controller="FirstCtrl">
<table class="table table-striped">
<tr ng-repeat="person in people">
<td ng-show="errorMap([1])">{{ person.first + ' ' + person.last }}</td>
</tr>
</table>
<div ng-click="flipView()">Flip!</div>
</div>
var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function ($scope) {
var errorMap = new Object()
errorMap['1'] = 'true'
errorMap['2'] = 'false';
$scope.errorMap = errorMap
$scope.people = [
{ id: 1, first: 'John', last: 'Rambo' },
{ id: 2, first: 'Rocky', last: 'Balboa' },
{ id: 3, first: 'John', last: 'Kimble' },
{ id: 4, first: 'Ben', last: 'Richards' }
];
$scope.flipView = function(){
alert('flipped')
$scope.errorMap['1'] = 'false'
$scope.$apply
}
});
我编辑了你的小提琴: HTML
<div ng-app="myapp" ng-controller="FirstCtrl">
<table class="table table-striped">
<tr ng-repeat="person in people">
<td ng-show="errorMap">{{ person.first + ' ' + person.last }}</td>
</tr>
</table>
<div ng-click="flipView()">Flip!</div>
</div>
等待你的反馈只是有点语法错误。在
错误映射([1])
中有()
。没有这个,一切都好
<td ng-show="errorMap[1]">{{ person.first + ' ' + person.last }} </td>
{{person.first+''+person.last}
此外,我认为一个简单的布尔值就可以做到这一点
在您的视图中,有一个分叉的,您将
errorMap
视为一个函数,但它是一个对象文本。此外,您正在传递一个整数,但对象的键是字符串
试一试
{{person.first+''+person.last}
var myapp = angular.module('myapp', []);
myapp.controller('FirstCtrl', function ($scope) {
$scope.errorMap=true;
$scope.people = [
{ id: 1, first: 'John', last: 'Rambo' },
{ id: 2, first: 'Rocky', last: 'Balboa' },
{ id: 3, first: 'John', last: 'Kimble' },
{ id: 4, first: 'Ben', last: 'Richards' }
];
$scope.flipView = function(){
alert('flipped');
$scope.errorMap = !$scope.errorMap; //this is actual flipping (show/hide)
}
});
<td ng-show="errorMap[1]">{{ person.first + ' ' + person.last }} </td>
<td ng-show="errorMap['1']">{{ person.first + ' ' + person.last }}</td>