Javascript Md对话框未加载与其关联的控制器
我试图在AngularJS1.5中加载md对话框,当点击按钮时,我看到的只是模态弹出窗口中的html标记,而不是该组件的控制器加载。下面是显示md对话框的标记 调用对话框的文件Javascript Md对话框未加载与其关联的控制器,javascript,angularjs,mddialog,Javascript,Angularjs,Mddialog,我试图在AngularJS1.5中加载md对话框,当点击按钮时,我看到的只是模态弹出窗口中的html标记,而不是该组件的控制器加载。下面是显示md对话框的标记 调用对话框的文件 $mdDialog.show ({ template: require('../traderdialog/traderdialog.html'), controller: Controller, controllerAs: 'vm', locals : {
$mdDialog.show ({
template: require('../traderdialog/traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
locals : {
traderId : traderId
},
clickOutsideToClose : true
});
}
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
所以,当我执行controller:controller时,它会转到不同的组件,就像我在目录结构中看到的一样我的traderdialog.js代码如下
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
或
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show ({
template: require('../traderdialog/traderdialog.html'),
controller: controllerName,
locals : {
traderId : traderId
},
clickOutsideToClose : true
});
}
function controllerName($scope){
$scope.data = "Controller Loaded";
}
或
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show ({
template: require('../traderdialog/traderdialog.html'),
controller: controllerName,
locals : {
traderId : traderId
},
clickOutsideToClose : true
});
}
function controllerName($scope){
$scope.data = "Controller Loaded";
}
您应该将所需的数据从父控制器注入到modal的作用域中。当modal打开时,它有自己的作用域
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show ({
template: require('../traderdialog/traderdialog.html'),
controller: 'MyCtrl',
locals : {
traderId : traderId
},
clickOutsideToClose : true
});
}
现在,让我们为您定义控制器modaltraderdialog.html
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
angular.module('app').controller('MyCtrl',['traderId', function(traderId){
console.log(traderId);
}]);
现在,
traderId
将反映您的模态。您应该将所需的数据从父控制器注入模态范围。当modal打开时,它有自己的作用域
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show ({
template: require('../traderdialog/traderdialog.html'),
controller: 'MyCtrl',
locals : {
traderId : traderId
},
clickOutsideToClose : true
});
}
现在,让我们为您定义控制器modaltraderdialog.html
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
angular.module('app').controller('MyCtrl',['traderId', function(traderId){
console.log(traderId);
}]);
现在,
traderId
将反映您的模式。在mdDialog中使用控制器有两种方法,一种是在保留范围中使用与父级相同的范围:
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show({
controller: function () {
return self;
},
templateUrl: 'templates/mdDialog.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose: false,
bindToController: true,
scope: $scope,
hasBackdrop: true,
preserveScope: true
});
另一个是与controllerAs属性一起使用,并对其进行初始化:
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show({
controller: DialogController,
templateUrl: 'templates/mdDialog.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose: true,
controllerAs: 'DlgCtrl',
bindToController: true,
locals: {
formData: $scope.formData,
}
})
您还可以使用DlgCtrl.formData语法联系本地人。在mdDialog中使用控制器有两种方法,一种是在保留范围中使用与父级相同的范围:
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show({
controller: function () {
return self;
},
templateUrl: 'templates/mdDialog.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose: false,
bindToController: true,
scope: $scope,
hasBackdrop: true,
preserveScope: true
});
另一个是与controllerAs属性一起使用,并对其进行初始化:
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }
$mdDialog.show({
controller: DialogController,
templateUrl: 'templates/mdDialog.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose: true,
controllerAs: 'DlgCtrl',
bindToController: true,
locals: {
formData: $scope.formData,
}
})
您可以使用DlgCtrl.formData语法联系当地人
angular.module('dashboard')
.component('traderdialog', {
template: require('./traderdialog.html'),
controller: Controller,
controllerAs: 'vm',
bindings: {
}
});
function Controller( $mdDialog) { *some code* }