このコンポーネントが見つかりました。私はそのバインディングに渡されるデータにアクセスできます。 しかし、それだけのテンプレートです。私はそれを使って何かをするために、コンポーネント自身のコントローラ内のオブジェクトにアクセスする必要があります。そして、私はそれを理解して少し固執しています。ここでアクセスオブジェクトが自身のコントローラ内のコンポーネントに渡されました
はコンポーネントです:
angular.module('MpWatchModule').component('mPointlite', {
bindToController: false,
restrict: 'E',
templateUrl: '/NG-MPWatch/Templates/mPointLite.html',
controller: function (NgMap) {
this.googleMapsUrl = 'https://maps.google.com/maps/api/js?key=<my_api_key>';
NgMap.getMap().then(function (map) {
this.map = map;
this.map.setMapTypeId('terrain');
// this.map.setMapTypeId('satellite');
this.mpObjs = mpdata;
});
},
controllerAs: 'mpl',
bindings: {
mpdata: '<',
},
});
そしてここでは、コンポーネントのテンプレートでマークアップです:ここで
<div map-lazy-load="https://maps.google.com/maps/api/js" map-lazy-load-params="{{mpl.googleMapsUrl}}">
<ng-map center="Hungary"
zoom="8"
class="gmap"
disable-default-u-i="true"
draggable-cursor="auto"
max-zoom="15"
min-zoom="8"
liteMode="true"
tilt="0">
<div ng-repeat="m in mpl.mpObjs">
<marker position="{{m.position}}">
</marker>
</div>
</ng-map>
</div>
ページからマークアップです:
<m-pointlite mpdata="mpdl.mpObjs">
</m-pointlite>
そして、何私は、ページ上のmpdl.mpObjsから来るオブジェクトにアクセスする必要があります。また、コンポーネントコントローラに表示されているものと同じものをコンポーネントテンプレートに表示してください。私はそのほとんどを成し遂げましたが、鎖のこの欠けているリンクだけです。
私は誰の助けにも感謝し、事前に助言します。
ありがとうございました
あなたのコントローラの中に** add ctrl = this; **このようなアクセス** this.mpObjs = ctrl.mpdata; ** –
**あなたが望む振る舞いを明示的に無効にして、 'bindToController:偽です。 – Claies