gpt4 book ai didi

javascript - 如何在 ember 中获取组件的值?

转载 作者:行者123 更新时间:2023-11-30 17:04:24 24 4
gpt4 key购买 nike

如何从组件中的固定装置调用属性值?我正在尝试设置坐标以在 bing map api 中放置一个图钉。我想从夹具中获取坐标。我该怎么做?

我正在使用 ember-cli 构建应用程序,因此如果与 emberjs 在解决问题方面有任何重要差异,请告诉我。

HERE是jsBin

这是 html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ember Starter Kit</title>
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.1/normalize.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v2.0.0.js"></script>
<script src="http://builds.emberjs.com/tags/v1.9.1/ember.js"></script>
<script charset="UTF-8" type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0"></script>
</head>
<body>

<script type="text/x-handlebars">
<h2>Welcome to Ember.js</h2>

{{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="index">
{{bing-map height=590}}
</script>


</body>
</html>

这是 JavaScript:

App = Ember.Application.create();

App.Router.map(function() {
// put your routes here
});

App.IndexRoute = Ember.Route.extend({
model: function() {
return App.COORD;
}
});

App.COORD=[
{
id:1,
latitude: 34.05,
longitude: -118.25,
},
{
id:2,
latitude: 25.77,
longitude: -80.19,
},
{
id:3,
latitude: 28.53,
longitude: -81.37,
}
];

App.BingMapComponent = Ember.Component.extend({
attributeBindings: ['style'],
classNames: ['bing-map'],
bingKey: "AkmMkZ5YpX8xsXHY4uBxD8Gz2S5f3GkTRebOw0t4voyb7gFryc0ElW4toY3cJbTt",
width: '45%',
height: '100%',
latitude: 0,
longitude: 0,
latitudePin:undefined,
longitudePin:undefined,
zoom: 1,
mapTypeId: 'r', // r:road, a:aerial



setPin: function(){
Liens.forEach(function(lien){
if(lien.setLocation){
this.get('latitude').push(lien.latitude);
this.get('longitude').push(lien.longitude);
console.log('this is happening');
}
});
},

init: function(){
this._super();
if (!this.get('bingKey')){
throw('Missing bingKey');
}
this.api = Microsoft.Maps;
this.map = null;
},

style: function(){
return "position: relative; width: %@px; height: %@px".fmt(
this.get('width'),
this.get('height')
);
}.property('width', 'height'),

center: function(){
var latitude = parseFloat(this.get('latitude'));
var longitude = parseFloat(this.get('longitude'));
longitude = this.api.Location.normalizeLongitude(longitude);

return new this.api.Location(latitude, longitude);
}.property('latitude', 'longitude'),

mapOptions: function(){
return {
center: this.get('center'),
zoom: parseInt(this.get('zoom'),10),
mapTypeId: this.get('mapTypeId')
};
}.property('center','zoom','mapTypeId'),

createMap: function(){
var el = this.$()[0];
var options = this.get('mapOptions');
options.credentials = this.get('bingKey');
this.map = new Microsoft.Maps.Map(el, options);

var latitude = this.get('latitudePin');
var longitude = this.get('longitudePin');



var pin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(31,-118));
this.map.entities.push(pin);




// var pin1 = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(this.get('latitude'), this.get('longitude')));
// Microsoft.Maps.Events.addHandler(pin1, 'click');



// var pin2 = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(0, -30));
// pin2.Title = "This is Pin 2";
// pin2.Description = "Pin 2 description";
// Microsoft.Maps.Events.addHandler(pin2, 'click');
// this.map.entities.push(pin2);


// var latitude;
// var longitude;
// var loc = new Microsoft.Maps.Location(latitude, longitude);
// var pushpin = new Microsoft.Maps.Pushpin(loc);
// this.map.entities.push(pushpin);


}.on('didInsertElement'),

removeMap: function(){
this.map.dispose();
}.on('willDestroyElement'),

});

提前致谢。解决此问题所需的任何其他细节请询问,我会尽快回复

最佳答案

您只需将 model 传递给您的组件,如下所示:

<script type="text/x-handlebars" data-template-name="index">
{{bing-map height=590 pins=model}}
</script>

然后,在您的组件中,pins 成为组件的属性,因此您可以按如下方式获取坐标:

var pins = this.get('pins');
pins.forEach(function(pin, index){
console.log(index + 1 + " " + pin.latitude);
});

工作演示 here

关于javascript - 如何在 ember 中获取组件的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com