��权限没有,则隐藏 function forum_list_access_filter($forumlist, $gid, $allow = 'allowread') { global $grouplist; if (empty($forumlist)) return array(); if (1 == $gid) return $forumlist; $forumlist_filter = $forumlist; $group = $grouplist[$gid]; foreach ($forumlist_filter as $fid => $forum) { if (empty($forum['accesson']) && empty($group[$allow]) || !empty($forum['accesson']) && empty($forum['accesslist'][$gid][$allow])) { unset($forumlist_filter[$fid]); } unset($forumlist_filter[$fid]['accesslist']); } return $forumlist_filter; } function forum_filter_moduid($moduids) { $moduids = trim($moduids); if (empty($moduids)) return ''; $arr = explode(',', $moduids); $r = array(); foreach ($arr as $_uid) { $_uid = intval($_uid); $_user = user_read($_uid); if (empty($_user)) continue; if ($_user['gid'] > 4) continue; $r[] = $_uid; } return implode(',', $r); } function forum_safe_info($forum) { //unset($forum['moduids']); return $forum; } function forum_filter($forumlist) { foreach ($forumlist as &$val) { unset($val['brief'], $val['announcement'], $val['seo_title'], $val['seo_keywords'], $val['create_date_fmt'], $val['icon_url'], $val['modlist']); } return $forumlist; } function forum_format_url($forum) { global $conf; if (0 == $forum['category']) { // 列表URL $url = url('list-' . $forum['fid'], '', FALSE); } elseif (1 == $forum['category']) { // 频道 $url = url('category-' . $forum['fid'], '', FALSE); } elseif (2 == $forum['category']) { // 单页 $url = url('read-' . trim($forum['brief']), '', FALSE); } if ($conf['url_rewrite_on'] > 1 && $forum['well_alias']) { if (0 == $forum['category'] || 1 == $forum['category']) { $url = url($forum['well_alias'], '', FALSE); } elseif (2 == $forum['category']) { // 单页 $url = ($forum['threads'] && $forum['brief']) ? url($forum['well_alias'] . '-' . trim($forum['brief']), '', FALSE) : url($forum['well_alias'], '', FALSE); } } return $url; } function well_forum_alias() { $forumlist = forum_list_cache(); if (empty($forumlist)) return ''; $key = 'forum-alias'; static $cache = array(); if (isset($cache[$key])) return $cache[$key]; $cache[$key] = array(); foreach ($forumlist as $val) { if ($val['well_alias']) $cache[$key][$val['fid']] = $val['well_alias']; } return array_flip($cache[$key]); } function well_forum_alias_cache() { global $conf; $key = 'forum-alias-cache'; static $cache = array(); // 用静态变量只能在当前 request 生命周期缓存,跨进程需要再加一层缓存:redis/memcached/xcache/apc if (isset($cache[$key])) return $cache[$key]; if ('mysql' == $conf['cache']['type']) { $arr = well_forum_alias(); } else { $arr = cache_get($key); if (NULL === $arr) { $arr = well_forum_alias(); !empty($arr) AND cache_set($key, $arr); } } $cache[$key] = empty($arr) ? '' : $arr; return $cache[$key]; } ?>javascript - Change the location of a DOM element in AngularJS - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Change the location of a DOM element in AngularJS - Stack Overflow

programmeradmin2浏览0评论

I currently have an angular directive which works similar to a carousel. In order to keep the dom element count down, I remove elements from the dom and re-insert them. I'm currently making use of the angular.element in order to select, delete and insert new items like so:

app.directive('myDirective', function(){
    return{
        link: function(scope, elem){
            var jqLite = angular.element;

            var parentElement = jqLite(elem[0].queryselector('.parent'));

            // Selection..
            var oldElement = jqLite(elem[0].queryselector('.oldItem'));
            var newElement = jqLite('<div class=".newItem">Content here</div>');

            oldElement.remove();

            parentElement.append(newElement);

        }
    }
});

Basically this code finds oldElement and removes it and creates newElement and appends it to the parent container element. Basically I want to know if its possible move oldElement to a new location rather than deleting and creating a whole new element?

I currently have an angular directive which works similar to a carousel. In order to keep the dom element count down, I remove elements from the dom and re-insert them. I'm currently making use of the angular.element in order to select, delete and insert new items like so:

app.directive('myDirective', function(){
    return{
        link: function(scope, elem){
            var jqLite = angular.element;

            var parentElement = jqLite(elem[0].queryselector('.parent'));

            // Selection..
            var oldElement = jqLite(elem[0].queryselector('.oldItem'));
            var newElement = jqLite('<div class=".newItem">Content here</div>');

            oldElement.remove();

            parentElement.append(newElement);

        }
    }
});

Basically this code finds oldElement and removes it and creates newElement and appends it to the parent container element. Basically I want to know if its possible move oldElement to a new location rather than deleting and creating a whole new element?

Share Improve this question asked Jul 24, 2015 at 6:50 Matthew MerryfullMatthew Merryfull 1,49618 silver badges32 bronze badges 5
  • what you mean move to a new location? if you do append(oldElement) for some other element - it moved – Grundy Commented Jul 24, 2015 at 6:52
  • You can hide the old element with ´ng-hide´ in DOM. – mggSoft Commented Jul 24, 2015 at 6:58
  • @Grundy thanks for the reply, I'll try it out – Matthew Merryfull Commented Jul 24, 2015 at 7:02
  • @mggSoft Thanks for the suggestion, however, I'm not interested in hiding elements in place. If for instance, the carousel has 200+ items, I'm not going to hide 195 rendered items – Matthew Merryfull Commented Jul 24, 2015 at 7:04
  • Ok @MatthewMerryfull. You can use ng-if, which allows you remove or add the item to DOM. – mggSoft Commented Jul 24, 2015 at 7:09
Add a ment  | 

1 Answer 1

Reset to default 6

This is exactly how append works (Node.prototype.appendChild). It moves element to new location if it's already in DOM tree, or creates new element and inserts to DOM if it's not there yet.

In your case:

app.directive('myDirective', function(){
    return{
        link: function(scope, elem) {
            var jqLite = angular.element;

            var parentElement = jqLite(elem[0].querySelector('.parent'));
            var oldElement = jqLite(elem[0].querySelector('.oldItem'));

            parentElement.append(oldElement);
        }
    }
});

or rather, because you don't need jQuery/jqLite) for such a simple DOM trick:

link: function(scope, elem){
    var parentElement = elem[0].querySelector('.parent');
    var oldElement = elem[0].querySelector('.oldItem');
    parentElement.appendChild(oldElement);
}
发布评论

评论列表(0)

  1. 暂无评论