我的HTML中有这个代码调用一个模态:
<button class="btn btn-default" ng-click="myCtrl.someModal()">{{myCtrl.title}}/button>
someModal
功能是:
that.someModal = function() {
var modal = $modal({
templateUrl: 'some_template.html',
backdrop: 'static',
controller: "someCtrl",
controllerAs: "sCtrl",
resolve : {
result : function() {
return {
cancel : function() {
modal.hide();
}
};
}
}
});
};
然后有一个
(function(){
var app = angular.module('myModule');
app.controller("someCtrl", ['Restangular', 'result', function(Restangular, result) {
that.cancel = function() {
result.cancel();
};
}]);
})();
最后在我的模态中:
<div class="modal-footer">
<button type="button" data-dismiss="modal" class="btn btn-default" ng-click="sCtrl.cancel()">Close</button>
</div>
有效,但这似乎是错误的做法。
两个问题:
modal.hide()
处发出警告,指出The local variable modal may not have been initialized
。如何重写以使警告消失? 注意:代码使用的是angular-strap
,而不是angular-ui
(这似乎更受欢迎)
答案 0 :(得分:3)
将方法更改为:
$scope.cancel = function () {
modalInstance.dismiss('cancel');
};
modalInstance是$ modal.open
返回的引用答案 1 :(得分:0)
显然,范围内有角度带$hide()
。
将data-dismiss="modal" ng-click="$hide()"
添加到关闭按钮可以正常工作。
我的错误是我尝试了hide()
,因为我用过的教程说不起作用。