如何在ember视图之外获取DOM元素?

时间:2017-09-20 08:41:16

标签: jquery ember.js

我目前正在开发一个应用程序,我们将整个应用程序拖到ember中,但截至目前,该应用程序正在使用JSP和jquery。

我的问题是我的ember应用程序当前正通过对象标签插入到jsp页面中。现在我想知道这个标记的类并相应地渲染路径。

当我试图找到$(' object')时,我什么都没得到。

我尝试了其他几种选择,但没有运气。

我的索引路由目前正在加载主路由,但我想根据对象标记上的类加载路由。

下面的

是我的index.js

import Ember from 'ember';

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

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

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");       
                }

2 个答案:

答案 0 :(得分:0)

据我所知,你应该可以使用普通的JQuery。可能还有别的东西是错的。我不认为这个问题与Ember有关。

要尝试的事情:

  • 你的意思是使用三等于? page === "user"单身平等可能会造成奇怪的事情。
  • 如果您查看Chrome Inspector
  • ,请在DOM中查找对象标记
  • 确保在DOM准备就绪时插入对象的代码正在运行
  • 执行某些控制台日志记录以查看是否确实找不到该对象,或者属性设置是否失败
  • 尝试在内联中包含数据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")

答案 1 :(得分:0)

只为人们在Google上搜索并搜索此内容,当您的元素位于DOM之外时,您需要获取它然后进行更改。我为获取元素所做的工作如下所示

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

它完美无缺。