[英]Search item in an array of another Javascript file (AngularJS used)
我是AngularJS的新手。 我决定用我定义的标记创建一个自定义地图。 因此,我创建了一个仅包含数组的javascript文件:
var myMarkers=[{
method1='..',
methode2='..'
},{
method1='..',
methode2='..'
}]
然后,我创建了一个app.s文件,该文件是用于创建地图的AngularJS指令
angular.module('myApp', []).
directive('myMap', function() {
var link = function(scope, element, attrs) {
function initMap(){..};
function setMarker(map, position, title, content,link){..};
function returnMarker(){..};
}
return {
restrict: 'A',
template: '<div id="gmaps"></div>',
replace: true,
link: link
};
});
在我的index.html中,
<html ng-app="myApp">
<head>...</head>
<body>
<div my-map=""></div>
</body>
</html>
它工作正常,但我想添加一个研究功能以找到一个标记,然后将地图放在该标记的中心。 像这样的东西:
<input type="search" placeholder="Search your place" ng-model='search'></input>
<p ng-repeat="marker in myMarkers| filter: search> {{marker.title}}</p>
预先感谢您的任何帮助
我相信您在要求三件事:1)从控制器中的另一个文件访问数组。 2)对标记进行过滤/搜索。 3)如何使地图在标记上居中。
要将阵列存储在另一个文件中并在控制器中访问它,请执行以下操作:
-mymarkers.js
var app = angular.module('myApp');
app.constant("myMarkers", [{
method1='..',
methode2='..'
},{
method1='..',
methode2='..'
}]);
-app.js文件
var app = angular.module('myApp', []);
angular.module('myApp').controller("myController", ["$scope", "myMarkers", function($scope, myMarkers){
$scope.markers= myMarkers;
$scope.searchMarkers = function(){
// loop through your markers array and compare with the entered value in text box.
}
}]);
app.directive('myMap', function() {
var link = function(scope, element, attrs) {
function initMap(){..};
function setMarker(map, position, title, content,link){..};
function returnMarker(){..};
}
return {
restrict: 'A',
template: '<div id="gmaps"></div>',
replace: true,
link: link
};
});
app.filter('marksersFilter', function () {
return function (objects, markerObj) {
if (!objects)
return [];
else if (!(markerObj))
return objects;
else {
var result = [];
for (var i = 0; i < objects.length; i++) {
// do comparision here, if found push object to result array
result.push(objects[i]);
}
return result;
}
}
});
-index.html
<html ng-app="myApp" ng-controller="myController">
<head>...</head>
<body>
<input type="search" ng-change="searchMarkers()" placeholder="Search your place" ng-model='search'></input>
<p ng-repeat="marker in myMarkers| marksersFilter: search"> {{marker.title}}</p>
<div my-map=""></div>
</body>
</html>
我希望这回答了您有关如何“使用Angular搜索另一个JS文件的数组中的项目)的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.