Javascript 传递给其内部组件的访问对象';自己的控制器
所以我得到了这个组件。我可以访问传递到其绑定的数据。 但只有在它的模板。我需要访问组件自己的控制器中的对象,以便对其执行一些操作。我有点被困在想这个问题上了 以下是组件:Javascript 传递给其内部组件的访问对象';自己的控制器,javascript,angularjs,Javascript,Angularjs,所以我得到了这个组件。我可以访问传递到其绑定的数据。 但只有在它的模板。我需要访问组件自己的控制器中的对象,以便对其执行一些操作。我有点被困在想这个问题上了 以下是组件: angular.module('MpWatchModule').component('mPointlite', { bindToController: false, restrict: 'E', templateUrl: '/NG-MPWatch/Templates/mPointLite.html',
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: '<',
},
});
angular.module('MpWatchModule')。组件('mPointlite'{
bindToController:false,
限制:'E',
templateUrl:“/NG MPWatch/Templates/mPointLite.html”,
控制器:功能(NgMap){
这是谷歌地图https://maps.google.com/maps/api/js?key=';
NgMap.getMap().then(函数(map){
this.map=map;
this.map.setMapTypeId('terrain');
//this.map.setMapTypeId('satellite');
this.mpObjs=mpdata;
});
},
controllerAs:'mpl',
绑定:{
mpdata:“我只是把JS代码放在一个单独的地方。试试下面的方法,你会在控制器中得到绑定
JS:
控制器:功能(NgMap){
var ctrl=this;
这是谷歌地图https://maps.google.com/maps/api/js?key=';
NgMap.getMap().then(函数(map){
this.map=map;
this.map.setMapTypeId('terrain');
//this.map.setMapTypeId('satellite');
this.mpObjs=ctrl.mpdata;
});
}
我只是把JS代码放在一个单独的地方。尝试下面的方法,您将在控制器中获得绑定
JS:
控制器:功能(NgMap){
var ctrl=this;
这是谷歌地图https://maps.google.com/maps/api/js?key=';
NgMap.getMap().then(函数(map){
this.map=map;
this.map.setMapTypeId('terrain');
//this.map.setMapTypeId('satellite');
this.mpObjs=ctrl.mpdata;
});
}
删除bindToController:false
默认情况下,角度组件的bindToController设置为true,并允许您访问控制器范围内的绑定
然后在控制器中调整线路:
this.mpObjs = mpdata;
要成为this.mpObjs=this.mpdata;
我建议将代码按照这样的方式进行布局,以提高可读性,更容易进行更改/使用,并遵循angular style指南:
(功能(){
"严格使用",
angular
.module('MpWatchModule')
.component('mPointlite', {
restrict: 'E',
bindings: {
mpdata: '<',
},
templateUrl: '/NG-MPWatch/Templates/mPointLite.html',
controller: PointLiteController,
controllerAs: 'mpl'
});
PointLiteController.$inject = ['NgMap'];
function PointLiteController(NgMap) {
var mpl = this;
mpl.googleMapsUrl = 'https://maps.google.com/maps/api/js?key=<my_api_key>';
activate();
function activate() {
NgMap.getMap().then(function (map) {
mpl.map = map;
mpl.map.setMapTypeId('terrain');
mpl.mpObjs = mpl.mpdata;
});
}
}
angular
.module('MpWatchModule')
.component('mPointlite'{
限制:'E',
绑定:{
mpdata:“删除bindToController:false
默认情况下,角度组件的bindToController设置为true,并允许您访问控制器范围内的绑定
然后在控制器中调整线路:
this.mpObjs = mpdata;
要成为this.mpObjs=this.mpdata;
我建议将代码按照这样的方式进行布局,以提高可读性,更容易进行更改/使用,并遵循angular style指南:
(功能(){
"严格使用",
angular
.module('MpWatchModule')
.component('mPointlite', {
restrict: 'E',
bindings: {
mpdata: '<',
},
templateUrl: '/NG-MPWatch/Templates/mPointLite.html',
controller: PointLiteController,
controllerAs: 'mpl'
});
PointLiteController.$inject = ['NgMap'];
function PointLiteController(NgMap) {
var mpl = this;
mpl.googleMapsUrl = 'https://maps.google.com/maps/api/js?key=<my_api_key>';
activate();
function activate() {
NgMap.getMap().then(function (map) {
mpl.map = map;
mpl.map.setMapTypeId('terrain');
mpl.mpObjs = mpl.mpdata;
});
}
}
angular
.module('MpWatchModule')
.component('mPointlite'{
限制:'E',
绑定:{
mpdata:“在控制器内部添加var ctrl=this;然后像这样访问。mpObjs=ctrl.mpdata;使用bindToController:false
,显式关闭所需行为。在控制器内部添加var ctrl=this;然后像这样访问。mpObjs=ctrl.mpdata;使用bindT显式关闭所需行为。”oController:false
。谢谢你,我何时/何地调用activate()?很好,就是这样。谢谢你对我的看法!谢谢你,我何时/何地调用activate()?很好,就是这样。谢谢你对我的看法!
angular
.module('MpWatchModule')
.component('mPointlite', {
restrict: 'E',
bindings: {
mpdata: '<',
},
templateUrl: '/NG-MPWatch/Templates/mPointLite.html',
controller: PointLiteController,
controllerAs: 'mpl'
});
PointLiteController.$inject = ['NgMap'];
function PointLiteController(NgMap) {
var mpl = this;
mpl.googleMapsUrl = 'https://maps.google.com/maps/api/js?key=<my_api_key>';
activate();
function activate() {
NgMap.getMap().then(function (map) {
mpl.map = map;
mpl.map.setMapTypeId('terrain');
mpl.mpObjs = mpl.mpdata;
});
}
}