【问题标题】:AngularJS, get scope with object-idAngularJS,使用对象ID获取范围
【发布时间】:2015-07-22 15:13:18
【问题描述】:

是否可以通过ID访问对象的具体作用域?

我使用 Angular ui 树作为导航菜单。添加子项并将导航保存到mysql数据库后,带有子项的节点没有展开。 推送后看到菜单展开了,但是保存到数据库中重新渲染导航菜单后,节点并没有展开。

有人有解决办法吗?

菜单的 JSON 对象。

[
  {
    "id": 35,
    "title": "foo",
    "items": []
  },
  {
    "id": 34,
    "title": "bar",
    "items": [
      {
        "id": 123,
        "title": "foobar",
        "items": []
      },
    ]
  },
  {
    "id": 46,
    "title": "barfoo",
    "items": []
  },
]

这个结构用下面的代码保存

function setMenu(nodeID) {
        $http.post("...", {
            "menuJSON" : $scope.menu
        }).success(function (data, status, headers, config) {
            if (status == 200) {
                loadAdminNavigation();
            }
        });
    };

保存到mysql数据库后,用这段代码重新加载结构

function loadAdminNavigation() {
        $http.get("...").success(function (response) {
            $scope.menu = response;
        });
    };

如果我添加一个子项,所有范围都是新的,我想用模型中的 ID 扩展节点。所以我需要知道如何通过 ID 访问范围。

【问题讨论】:

  • 你能分享你目前尝试过的代码吗?
  • 如果您的意思是元素 id 的范围......是的......但问题听起来更像是保存对象结构的问题。远远没有提供足够的信息来帮助。将工作数据与您保存的数据进行比较会有所帮助

标签: javascript mysql angularjs


【解决方案1】:

获取元素范围的示例代码:

var documentResult = document.getElementsById("someId");
angular.element(documentResult).scope();

关于 element 的官方 Angular 文档:

https://docs.angularjs.org/api/ng/function/angular.element

scope() - 检索当前元素或其父元素的范围。需要启用调试数据。

可以阅读该帖子:How do I access the $scope variable in browser's console using AngularJS?

【讨论】:

    【解决方案2】:

    你可以轻松做到:

    angular.element(document.querySelector('#myId')).scope();

    甚至:

    angular.element('#myId').scope();

    干杯!

    【讨论】:

      猜你喜欢
      • 2015-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多