- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
实际上我是 angularjs 的新手,我面临着让我很困惑的问题。我已经编写了 angularjs Controller ,它在下拉菜单中填充数据并选择每个选项,它应该在 map 上显示特定位置。为了触发事件,我使用了 ng-change。
我的 HTML View 看起来像,
<select name="DeviceList" ng-model="deviceList" ng-change="filterMarkers()">
<option value="0" selected="selected">All</option>
<option ng-repeat="device in data" value="{{device.id}}">{{device.name}}</option>
</select>
JSON 对象看起来像,
[{
"id": 1,
"name": "MacVend1001",
"latitude": "12.9383145",
"longitude": "77.57274628",
"status": "ON",
"failureMessage": null,
"healthIndex": [{
"Parameter": "Voltage",
"value": "29",
"y-axis": [244, 124, 226, 372, 180, 290, 135, 350, 175, 145],
"x-axis": ["2016-01-01 13:49:32", "2016-01-02 13:48:43", "2016-01-03 13:48:43", "2016-01-04 13:48:43", "2016-01-05 13:49:32", "2016-01-06 13:48:43", "2016-01-07 13:48:43", "2016-01-08 13:48:43", "2016-01-09 13:48:43", "2016-01-10 13:48:43"],
"chart-type": "Trend"
}, {
"Parameter": "Internal Temprature",
"value": "30",
"y-axis": [44, 24, 26, 72, 80, 90, 35, 50, 75, 45],
"x-axis": ["2016-01-01 13:49:32", "2016-01-02 13:48:43", "2016-01-03 13:48:43", "2016-01-04 13:48:43", "2016-01-05 13:49:32", "2016-01-06 13:48:43", "2016-01-07 13:48:43", "2016-01-08 13:48:43", "2016-01-09 13:48:43", "2016-01-10 13:48:43"],
"chart-type": "Trend"
}, {
"Parameter": "External Temprature",
"value": "45",
"y-axis": [144, 224, 126, 372, 180, 2940, 1355, 250, 175, 345],
"x-axis": ["2016-01-01 13:49:32", "2016-01-02 13:48:43", "2016-01-03 13:48:43", "2016-01-04 13:48:43", "2016-01-05 13:49:32", "2016-01-06 13:48:43", "2016-01-07 13:48:43", "2016-01-08 13:48:43", "2016-01-09 13:48:43", "2016-01-10 13:48:43"],
"chart-type": "Trend"
}]
}]
最后 Controller 来了,
angular.module('mapsApp', [])
.controller('NewMapCtrl', function ($scope,$http) {
$scope.data=[];
$http({method:'GET',url: 'https://korbsbvm130.apac.bosch.com:8244/intelrfc/1.0/devicelist'}).success(function(API_RESPONSE){
$scope.data=API_RESPONSE;
$scope.devicelist=0;
});
var mapOptions = {
zoom: 4,
center: new google.maps.LatLng(40.0000, -98.0000),
mapTypeId: google.maps.MapTypeId.TERRAIN
}
$scope.map = new google.maps.Map(document.getElementById('map'), mapOptions);
$scope.markers = [];
var infoWindow = new google.maps.InfoWindow();
var createMarker = function (info) {
var marker = new google.maps.Marker({
map: $scope.map,
position: new google.maps.LatLng(info.lat, info.long),
title: info.city,
Name:info.name
});
marker.content = '<div class="infoWindowContent">' + info.desc + '</div><div class="infoWindowContent">' + info.city + '</div><div class="infoWindowContent">' + info.name + '</div>';
google.maps.event.addListener(marker, 'click', function () {
infoWindow.setContent('<h2>' + marker.Name +'<h2>' + marker.title + '</h2>' + marker.content);
infoWindow.open($scope.map, marker);
});
$scope.markers.push(marker);
}
for (i = 0; i < $scope.data.length; i++) {
createMarker($scope.data[i]);
}
$scope.openInfoWindow = function (e, selectedMarker) {
e.preventDefault();
google.maps.event.trigger(selectedMarker, 'click');
}
$scope.clearMarkers = function() {
for (var i = 0; i < $scope.markers.length; i++) {
$scope.markers[i].setMap(null);
}
$scope.markers.length = 0;
}
$scope.filterMarkers = function() {
//1.select filtered cities
var devicesData;
var deviceName = $scope.deviceList;
if(deviceName == '0') {
devicesData = $scope.data;
}
else {
devicesData = $scope.data.filter(function(c){
alert("C.id="+c.id)
if(c.id == deviceName)
return c;
});
}
//2.update markers on map
$scope.clearMarkers();
for (i = 0; i < devicesData.length; i++) {
createMarker(devicesData[i]);
}
}
});
现在的问题是,每当我从填充的下拉列表中单击任何选项时,它都会调用 filtermarkers() 函数两次,但通常它不应该调用。请分享您对如何摆脱它的想法。
它还在填充的下拉列表中显示了两个空选项。
最佳答案
您可能只是没有正确配置 select 指令。我不记得在 select 指令中看到 value 属性。这是一个显示简单使用的 plunker,配置为在选择更改时调用函数。
https://plnkr.co/edit/zOZ9Tqv4r5rYPXTNyICx?p=preview
标记:
<body ng-app="myApp">
<div ng-controller="myController">
<select ng-model="selectedOption" ng-change="someFunction()">
<option ng-repeat="device in someArray">{{device.name}}</option>
</select>
</div>
</body
希望这对您有所帮助。
关于javascript - Angular : function triggers twice on ng-change while selecting any option from dropdown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34956457/
我的应用程序中有大约 100 多个表。大多数更新查询不会更新最后更新的时间列。有 100 多个查询,所以我有点怀疑修改所有查询以包括上次更新时间。我正在寻找的替代选项是为所有表创建一个 oracle
我的应用程序中有大约 100 多个表。大多数更新查询不会更新最后更新的时间列。有 100 多个查询,所以我有点怀疑修改所有查询以包括上次更新时间。我正在寻找的替代选项是为所有表创建一个 oracle
trigger.io 是否支持黑莓?如果没有,是否有任何计划支持它。 最佳答案 在移动方面,他们目前支持: iOS 4+ (iPhone 和 iPad) 安卓 2.0+ window 电话* 我不知道
这是 here 中的一个改写的问题。经过一些测试后,我隔离了问题,但没有解决它的线索。无需阅读上一个问题,这是简化的代码: 问题 -> trigger('click')执行,但在循环(间隔)函数内时不
我有一个程序,它会从 redis 数据存储中轮询某个键,并在该值满足某个条件时执行某些操作。 不过我觉得redis周期性的轮询效率很低,想知道redis有没有“触发”机制,当值发生变化满足条件时,触发
现在我的合作者收到这样的错误:[错误] Forge API call to app/f7617c848[...]adcbe/should_rebuild 出错:应用匹配查询不存在。 最佳答案 我们正在
当用户在我的 trigger.io iOS 应用程序(使用 Parse.com)上收到推送通知并希望在用户打开应用程序时清除徽章时,我将徽章设置为 1。有谁知道如何做到这一点? 谢谢! 最佳答案 有几
iPhone 启动图像现在显示太短,我想延长持续时间。 有没有办法在 config.json 中指定它? 最佳答案 更新 :从平台版本 v1.4.20 开始,您可以控制启动图像的可见性(http://
如何将文件下载到我的 trigger.io 应用程序?我的应用程序显示离线数据,但我需要我的应用程序如何从服务器下载和存储本地新鲜数据的方式。数据是一个带有项目数组和一些图像的 js 文件,每个图像都
为了根据条件更改 ListBoxItem 前景,我可以通过 DataTemplate.Triggers 来完成: ...
为了根据条件更改 ListBoxItem 前景,我可以通过 DataTemplate.Triggers 来完成: ...
我们正在构建一个以 Chaplin 为基础的 Trigger 应用程序。出于开发目的,如果我们可以使用 Assets 的绝对路径,那就太好了,比如: 是否可以在 Trigger 中执行此操作?
什么时候应该选择Style.Triggers,什么时候应该选择ControlTemplate.Triggers?使用一个比另一个有什么好处吗? 假设我有实现相同结果的这些样式:
在我的情况下,我将有一个带有自定义 url 架构的重定向 URL,例如 myapp://oauth 所以首先我会转发到我的 oauth 登录 url,然后我需要为位置更改注册一个事件处理程序,以检查它
我可以创建一个带有 OR 条件的 MYSQL TRIGGER 创建或替换触发器 TIGGER 名称插入之前或更新或删除 像这样(下面是 ORACLE TRIGGER): CREATE OR REPLA
有两个相同类型但存在于不同类中的属性。 FrameworkElement.Triggers Property Style.Triggers Property 这让我很困惑,所以我很少有问题要寻找答案:
我有兴趣为 trigger.io 编写 native 插件。 这是否已经可能或在路线图上? 最佳答案 这绝对在路线图上:我们从一开始就不允许这样做的主要原因是我们最初的主要重点是创建一个尽可能平稳和快
我知道如何缓存它,但我以后如何检索它。文档 ( http://docs.trigger.io/en/v1.4/features/cache.html ) 仅给出了使用图像的示例,要检索您需要做的就是获
在 AzureFunction1 中收到简短通知后,我需要一种可靠的方法将其快速保存,然后触发另一个 Azurefunction 来分析数据并根据分析进行其他操作。 我正在寻找一种向 azure fu
我正在尝试使用 Trigger.io 的框架构建一个流式音频应用程序。 看到它的 API 目前没有任何与音频相关的方法,我用基本的 HTML5 audio 对其进行了测试。标签。在这种情况下流式传输
我是一名优秀的程序员,十分优秀!