ng-hide&传单中的ng-show

时间:2016-02-13 10:26:10

标签: arrays angularjs leaflet ng-hide

我尝试使用'ng-show'和'ng-hide'属性创建传单图例 遗憾的是,图例不会在网站加载时创建,而是在地图加载时创建。 如果直接添加javascript,这些属性似乎不起作用。

此代码:

SELECT *
FROM cities AS c1
WHERE
(SELECT COUNT(*)
 FROM cities AS c2
 WHERE c2.population > c1.population)<5;

Produces that output.
如上所述,有一个表不应该。 有没有办法在运行时通过javascript添加'ng-hide'或'ng-show'?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要编译自定义控件的DOM。为此,您需要将$compile注入控制器,然后在将控件添加到地图后,使用控件实例上的getContainer方法并运行$compile on并将其附加到范围:

控制:

L.Control.Custom = L.Control.extend({
    onAdd: function () {
        var container =  L.DomUtil.create('div', 'leaflet-control-custom')
            header = L.DomUtil.create('h1', 'leaflet-control-custom-header', container);

        header.textContent = 'NG-Hide test';
        header.setAttribute('ng-hide', 'hide');

        return container;
    }
});

控制器:

angular.module('app').controller('controller', [
             '$scope', 'leaflet', '$compile',
    function ($scope,   leaflet,   $compile) {
        $scope.hide = false;
        leaflet.map.then(function (map) {
            var control = new L.Control.Custom().addTo(map);
            $compile(control.getContainer())($scope);
        });
    }
]);

以下是关于Plunker的工作示例:http://plnkr.co/edit/xzRwTp9OZ8Zp8v7ktt2c?p=preview