ember.js 如何获取ember视图之外的DOM元素?

czfnxgou  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(157)

我目前正在开发一个应用程序,我们正在将整个应用程序迁移到ember,但到目前为止,该应用程序使用的是JSP和jquery。
我的问题是,我的ember应用程序当前通过一个对象www.example.com插入到一个jsp页面中tag.now我想知道这个标记的类并相应地呈现路由。
当我试图查找$('object')时,什么也没得到。
我尝试了一些其他的选择,但没有运气。
我的索引路线是加载主页路线,但我想加载路线的基础上,类对象标签上可用。
下面是我的index.js

import Ember from 'ember';

    export default Ember.Route.extend({
        beforeModel() {
        console.log(this);
        this.replaceWith('rentals');
      }
    });

我的jsp有这个代码片段,以便添加我想要的ember应用程序

var url = "../../rdm/ember/dist/index.html";
                if(page == "user")
                {
                    $(".ui-layout-center").html( '<object type="text/html" class="user"></object>');
                    $("object").attr('data',url);
                    mdmCurrentRequestObj = $(".ui-layout-center object");   
                }
                else
                {
                    $(".ui-layout-center").html( '<object type="text/html" class="userprofile"></object>');
                    $("object").attr('data',url);
                    mdmCurrentRequestObj = $(".ui-layout-center object");       
                }
mrphzbgm

mrphzbgm1#

据我所知,你应该可以使用正常的JQuery。可能是别的什么地方出了问题。我不认为这个问题与Ember有任何关系。
可尝试的事项:

  • 是否要使用三重等于?page === "user"单重等于可能会导致奇怪的结果。
  • 如果您在Chrome检查器中查找,请在DOM中查找对象标签
  • 请确保在DOM准备就绪时,插入对象的代码正在运行
  • 执行一些控制台日志记录,以查看是否真的没有找到对象,或者属性设置只是失败
  • 尝试将data attr包含在内联中,例如<object type="text/html" class="user" data=${data}></object>(用反勾号而不是引号将字符串括起来)
  • 确认ui-layout-center作为类存在(例如,不是id)
  • 创建一个将任何其他类型的元素插入到DOM中然后尝试设置属性的最小示例。例如,尝试插入一个带有ID的div,然后查找它。

一旦成功地从DOM中获取了对象,就可能需要查询和修改对象本身的内容。

$('#some-object').contents().find('.some-element').text("some text")
esyap4oy

esyap4oy2#

只是为了那些在谷歌上搜索它的人,当你的元素在DOM之外的时候,你需要得到它,然后进行修改。

Ember.$(window.self.top.document).find('object').hasClass("user")

而且效果很好。

相关问题