zoukankan      html  css  js  c++  java
  • AngularJS中的transclusion案例

    AngularJS中的transclusion类似于包含关系。

    通常,这样定义一个directive:

    <mydirective someprop=""></mydirective>

    转换成html可能是这样的:

    <div>
        <div class="someclass">
        </div
    </div>

    现在,想在类名为someclass的div中放置一些动态内容,即:


    <div>
        <div class="someclass">
            这里有一些动态内容
        </div
    </div>

    如何做到呢?

    1、在template中通过属性或者元素的方式标记放置动态内容的位置,比如<ng-transclude></ng-transclude>
    2、在directive的返回对象中增加transclude: true

    假设,有这样的一个Directive:

    (function(){
        var transclusion = function(){
            var template = '<div>Name:<input type="text" ng-model="vm.title"/>&nbsp;' +
                '<button ng-click="vm.addTask()">Add Task</button>' +
                '<div class="taskContainer"><br/>' +
                '<ng-transclude></ng-transclude>' +
                '</div></div>',
            controller = function(){
                var vm = this;
                vm.addTask = function(){
                    if(!vm.tasks) vm.task = [];
                    vm.tasks.push({
                        title: vm.title
                    });
                }
            };
            
            return {
                restrict: 'E',
                transclude: true,
                scope: {
                    tasks:'='
                },
                controller: controller,
                controllerAs: 'vm',]
                bindToController: true,
                template: template
            }
        };
        
        angular.module('direcitiveModule')
            .directive('transclusion', transclusion);
    }());


    在页面大致这样使用:

    <transclusion tasks="tasks">
        <div ng-repeat="task in tasks track by $index">
            <strong>{{task.title}}</strong>
        </div>
    </transclusion>
    
    $scope.tasks = [{title: 'Task 1'}];
  • 相关阅读:
    代码性能优化-1
    sql调优-1
    2020.11.08 字符串可以是对象
    2020.11.09 JavaScript运算符
    2020.11.10 JavaScript 比较
    2020.11.11
    2020.11.12 条件语句
    2020.11.13 switch语句
    2020.11.14 循环
    2020.11.15
  • 原文地址:https://www.cnblogs.com/darrenji/p/5158014.html
Copyright © 2011-2022 走看看