在 ng-click 上从工厂方法调用模态 window
Call modal window from factory method on ng-click
我在 ng-click 操作上从工厂方法调用模态 window 时遇到问题。
我尝试了 2 种调用方式:
$scope.AddItem = function ($scope) {ModalWindowService.openAddItemDialog($scope)};
这样一来,点击就什么都没有了。但如果我检查 alert()
它有效。
$scope.AddItem = function () {alert('here');};
如果我这样做:
$scope.AddItem = ModalWindowService.openAddItemDialog($scope);
- modal window 仅在页面加载时打开,而不是 ng-click 功能。
那么,我该如何解决问题?
这是示例代码:
主控:
app.controller('MainController', ['$scope', 'ModalWindowService', function($scope, ModalWindowService){
//$scope.AddItem = ModalWindowService.openAddItemDialog($scope);
$scope.AddItem = function ($scope) {ModalWindowService.openAddItemDialog($scope)};
}]);
ModalWindowService:
app.factory('ModalWindowService',['$modal',function($modal) {
function openAddItemDialog($scope) {
$scope.animationsEnabled = true;
$scope.valueToPass = "I must be passed";
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: '/view/AddItemDialog.html',
controller: 'AddItemController',
resolve: {
aValue: function () {
return $scope.valueToPass;
}
}
});
modalInstance.result.then(function (paramFromDialog) {
$scope.paramFromDialog = paramFromDialog;
});
}
return {
openAddItemDialog: openAddItemDialog
};
}]);
AddItemController:
app.controller('AddItemController',function($scope, $modalInstance, aValue) {
$scope.valuePassed = aValue;
$scope.close = function () {
$modalInstance.close("Someone Closed Me");
};
});
HTML 从那里应该打开模式 window:
<button type="button" class="btn btn-orange btn-block" ng-click="AddItem()">
Add
</button>
在您的控制器中,不要将 $scope
传递给 $scope.AddItem
函数。
$scope.AddItem = function () {
ModalWindowService.openAddItemDialog($scope)};
}]);
我在 ng-click 操作上从工厂方法调用模态 window 时遇到问题。 我尝试了 2 种调用方式:
$scope.AddItem = function ($scope) {ModalWindowService.openAddItemDialog($scope)};
这样一来,点击就什么都没有了。但如果我检查 alert()
它有效。
$scope.AddItem = function () {alert('here');};
如果我这样做:
$scope.AddItem = ModalWindowService.openAddItemDialog($scope);
- modal window 仅在页面加载时打开,而不是 ng-click 功能。
那么,我该如何解决问题?
这是示例代码:
主控:
app.controller('MainController', ['$scope', 'ModalWindowService', function($scope, ModalWindowService){
//$scope.AddItem = ModalWindowService.openAddItemDialog($scope);
$scope.AddItem = function ($scope) {ModalWindowService.openAddItemDialog($scope)};
}]);
ModalWindowService:
app.factory('ModalWindowService',['$modal',function($modal) {
function openAddItemDialog($scope) {
$scope.animationsEnabled = true;
$scope.valueToPass = "I must be passed";
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: '/view/AddItemDialog.html',
controller: 'AddItemController',
resolve: {
aValue: function () {
return $scope.valueToPass;
}
}
});
modalInstance.result.then(function (paramFromDialog) {
$scope.paramFromDialog = paramFromDialog;
});
}
return {
openAddItemDialog: openAddItemDialog
};
}]);
AddItemController:
app.controller('AddItemController',function($scope, $modalInstance, aValue) {
$scope.valuePassed = aValue;
$scope.close = function () {
$modalInstance.close("Someone Closed Me");
};
});
HTML 从那里应该打开模式 window:
<button type="button" class="btn btn-orange btn-block" ng-click="AddItem()">
Add
</button>
在您的控制器中,不要将 $scope
传递给 $scope.AddItem
函数。
$scope.AddItem = function () {
ModalWindowService.openAddItemDialog($scope)};
}]);