AngularJS,使用object-id获取范围

时间:2015-07-22 15:13:18

标签: javascript mysql angularjs

是否可以通过ID访问对象来获取对象的特定范围?

我使用角度ui树作为导航菜单。添加子项并将导航保存到mysql数据库后,子项的节点不会展开。 推送后,我看到菜单展开,但在将其保存在数据库中并重新渲染导航菜单后,节点不会展开。

让某人有解决方案吗?

菜单的JSON-Object。

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

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

2 个答案:

答案 0 :(得分:0)

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

onTick()

关于var documentResult = document.getElementsById("someId"); angular.element(documentResult).scope(); 的官方Angular文档:

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

  

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

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

答案 1 :(得分:0)

您可以轻松完成:

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

甚至:

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

干杯!