我正在尝试实现一个角度的js弹出窗口,文本将根据按钮的回调动态更改。
所以基本上用户会按下一个按钮,我将检查某个错误条件,如果有错误会弹出一个带有错误代码的对话框。问题是弹出窗口中的文本只显示初始化变量时的文本。如果我尝试从我的按钮回调进行更改,它不会更改文本。
有很多代码,所以我将发布重要的不同部分。
这是我的错误.html我的弹出窗口
<div ng-controller='datarec'>
<div class="modal-header">
<h3 style="text-align:center">Rec Error</h3>
</div>
<div class="modal-body" >
<div >{{ recError }} </div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" type="button" ng-click="ok()">Ok</button>
</div>
这是我弹出窗口的控制器
testApp.controller('recordErrorCtrl', function ($scope, $uibModalInstance) {
$scope.ok = function () {
$uibModalInstance.close(true);
};
});
这是我的主要应用程序 JavaScript 文件
testApp.controller('datarec', ['$scope',
function ($scope) {
$scope.recError = "No error yet"; // init to this,which works
....
$scope.sendRecMessage = function() {
$scope.recordingError = " Init 2"; // This I never see in pop up
// call my popup
popup (errorCtrler);
}
所以基本上当我弹出错误时,它永远不会看到"Init 2",它只会停留在原来没有错误
看起来您正在使用 Angular UI Bootstrap,可能是您没有传入正确的范围或参数。尝试使用 resolve 将参数发送到弹出窗口。
var modalInstance = $uibModal.open({
controller: 'recordErrorCtrl',
resolve: {
recError: function () {
return $scope.recError;
}
}
});
你的html中也有ng-controller='datarec'。这可能需要删除,以便考虑正确的控制器("recordErrorCtrl")。