我的index.html
包含一个可信的div和一个按钮。在按钮click(ng-click)
上,$uibModal.open()
控制器中的ModalDemoCtrl
功能打开一个模态窗口,然后调用控制器ModalInstanceCtrl
,在模态中呈现各种表情。我希望当我点击模态窗口中的笑脸时,图像会在contenteditable
index.html
div中呈现
index.html
:
<div ng-controller="ModalDemoCtrl" id="angularData">
<div id="view1">
<button type="button" class="btn btn-default" ng-click="open('lg')">Emojis</button>
<div contenteditable="true" ng-model="textModel"></div>
</div>
</div>
emojis.js
:
angular.module('ui.bootstrap.demo')
.controller('ModalDemoCtrl', function ($scope, $uibModal, $log) {
$scope.animationsEnabled = true;
$scope.textModel = "Hello";
$scope.open = function (size) {
var modalInstance = $uibModal.open({
animation: $scope.animationsEnabled,
templateUrl: 'template/template.html',
controller: 'ModalInstanceCtrl',
windowClass: 'large-Modal',
});
};
});
angular.module('ui.bootstrap.demo')
.controller('ModalInstanceCtrl', function ($scope, $window, createEmojiIcon) {
$scope.getUnicode = function(id) { //This functions get the img tag of clicked smiley in variable 'input'
var style = createEmojiIcon.createEmoji(icons[id]);
var input = '<img src="img/blank.gif" class="img" style="' + style + '" alt="' + icons[id][3] + '" title="' + icons[id][3] + '">';
}
});
我想要的是这个变量,在调用函数contenteditable
时,在$scope.getUnicode
div中称为输入。
简单来说,ModalDemoCtrl
中的textModel在调用函数$scope.getUnicode
时会附加img标记。
ps :函数$scope.getUnicode
由ng-click
中的template.html
调用
Here 是一个样本。
答案 0 :(得分:2)
由于您有2个独立的范围,因此您需要为click事件进行rootScope广播。
修正了你的代码。通过$ rootScope广播将X从模型弹出窗口传递到其他控制器。
在ModalInstanceCtrl
中$rootScope.$broadcast('selectedCode', {message: 'x'});
在ModalDemoCtrl
$rootScope.$on('selectedCode', function(event, args){
alert(args.message);
});
答案 1 :(得分:1)
亲爱的,
您必须使用工厂或服务。但是,我会向你展示一些参考资料:
angular.module('ui.bootstrap.demo')
.factory('myFactory', function() {
return {
setInput : function(data){
input = data;
}
getInput : function(){
return input;
}
}
});
.controller('ModalDemoCtrl', function ($scope, $uibModal, $log) {
$scope.input= myFactory.getInput();
**//you'll get value what you set in controller below**
});
.controller('ModalInstanceCtrl', function ($scope, $window, createEmojiIcon){
myFactory.setInput(data);
**//you are setting value here**
});
谢谢&amp;干杯强>