onsen ui:访问ons对话框's父页中的DOM元素
onsen ui: access ons-dialog's DOM elements from parent page
我在空闲时间看了教程,成功地构建了一个合理的应用程序,但我一直无法在ons对话框中访问(或知道是否可以访问)DOM元素。
我正在为从相机拍摄的图像构建图像上传功能。在点击父页面上的捕获按钮并通过相机进行捕获(在此阶段之前,相机工作正常)后,我希望图像显示在ons对话框中,用户可以在上传图像之前在其中放置标题、标签等。
这是我的代码:
在主页控制器内处理"捕获"按钮的父页面上:
var uploadImageDialog_var = ""; // global variable in js file outside HomepageController definition
// ...
// access camera, capture pic, go to success function with captured image data:
// ...
function onCaptureSuccess(data) {
ons.createDialog('upload_image_dialog.html', {parentScope: $scope}).then(function(dialog) {
uploadImageDialog_var = dialog;
uploadImageDialog_var.show();
});
var viewport = document.getElementById('viewport');
document.getElementById("test_img").src = "data:image/jpeg;base64," + data; <------ THIS LINE
console.log(document.getElementById('test_img').src);
};
在html端,"viewport"是ons对话框上的div:
<ons-template id="upload_image_dialog.html" var="uploadImageDialog" ng-controller="HomepageController">
<ons-dialog cancelable><!-- animation-options="{duration: 0.2, delay: 1, timing: 'ease-in'}">-->
<div class="list__item list__item center" style="opacity: 0.4; border-bottom: 1px solid #0d96d7" > Tag My Upload </div>
<div id="viewport" class="" style="width: 300px; height:300px">
<img style="" id="test_img" src="" />
</div>
<br/> <br/><br/>
<ons-button class="center" modifier="large" ng-click="uploadPictureOK()">Upload!</ons-button>
</ons-dialog>
</ons-template>
上面js中的document.getElementById("test_img")看起来正在工作,当我console.out它时,对test_img的src的更改会显示出来,但实际对话框显示的是旧的伪图像。
如果我需要更好的解释/提供,请让我知道,如果这是微不足道的,请原谅我。
我想明白了。当父页和模板分别声明时,我意外地在它们上都有一个ng控制器定义。这导致了对$scope/其他变量的不同访问。我把他们灌醉了,效果很好
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 通过AJAX侦听向DOM添加某些元素
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- Selenium无法在浏览器DOM中定位元素
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 从dom中删除任何元素后,Touchmove事件停止触发
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- 找到元素DOM的根节点(阴影或光)的最佳方法是什么?
- 在querySelector:如何获得第一个和最后一个元素?dom中使用的遍历顺序