gpt4 book ai didi

javascript - 从父 Controller 在 Angular Modal 中显示动态内容

转载 作者:行者123 更新时间:2023-11-30 16:22:57 26 4
gpt4 key购买 nike

我正在使用 angular-modal-service .我希望将模态主体的内容修改为来自用户的自定义输入文本。我的 index.html 看起来像:

<head>
<link rel="import" href="notify.html">
<script type="text/javascript" src="app.js"></script>
</head>
<body>
<input type="text" ng-model="custom_text" />
<input type="button" value="Click here for notification" ng- click="showNotification()" />
</body>
</html>

我的 app.js :

var app = angular.module("someApp", ['angularModalService']);

app.controller("mainController", function($scope, ModalService){
$scope.showNotification = function(){
document.getElementById('my_text').innerHTML = $scope.custom_text;
alert($scope.custom_text);
ModalService.showModal({
templateUrl: "notify.html",
controller: "YesNoController"
}).then(function(modal) {
modal.element.modal();
modal.close.then(function(result) {
$scope.message = result ? "You said Yes" : "You said No";
});
});
}

});

app.controller('YesNoController', ['$scope', 'close', function($scope, close) {

$scope.close = function(result) {
close(result, 500); // close, but give 500ms for bootstrap to animate
};

}]);

我的 notify.html 有:

<div class="modal fade">
<div class="modal-dialog">
<div class="modal-content">

<div class="modal-header">
<button type="button" class="close" ng-click="close(false)" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Yes or No?</h4>
</div>

<div class="modal-body">
<p><span id="my_text"></span></p>
</div>

<div class="modal-footer">
<button type="button" ng-click="close(false)" class="btn btn-default" data-dismiss="modal">No</button>
<button type="button" ng-click="close(true)" class="btn btn-primary" data-dismiss="modal">Yes</button>
</div>

</div>

我实际上是在尝试通过 DOM 访问它来修改 Controller 中的 notify.html 模态主体。但它给了我错误:无法设置 null 的属性“innerHTML”。

我该怎么做。请帮忙。

最佳答案

首先,您应该只使用指令以 Angular 操作 DOM。因此,您以这种方式访问​​ DOM 的方法可能会给您带来问题,即使它是有效的。

话虽这么说。您只需将范围值传递给 Modal,然后使用 Handlebars 将值直接绑定(bind)到模板 {{custom_text}}

更新.showModal方法来传递作用域值:

ModalService.showModal({
templateUrl: "notify.html",
controller: "YesNoController",
inputs: {
'custom_text': $scope.custom_text
}
}).then(function(modal) {
modal.element.modal();
modal.close.then(function(result) {
$scope.message = result ? "You said Yes" : "You said No";
});
});

模态 HTML:

<div class="modal-body">
<p><span id="my_text">{{custom_text}}</span></p>
</div>

关于javascript - 从父 Controller 在 Angular Modal 中显示动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34494142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com