Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript angularjs模板绑定_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript angularjs模板绑定

Javascript angularjs模板绑定,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已经开发了一个transclude指令,并将其设置为使用angularjs模板脚本。一切正常,但我仍然无法访问绑定数据 我的代码: index.html <div side-element="box" title="Links"> <ul> <li>Link 1</li> <li>Link 2</li>

我已经开发了一个transclude指令,并将其设置为使用angularjs模板脚本。一切正常,但我仍然无法访问绑定数据

我的代码:

index.html

<div side-element="box" title="Links">
                <ul>
                    <li>Link 1</li>
                    <li>Link 2</li>
                </ul>
</div>

<script id="box" type="text/ng-template">
            <div class="side-box">
                <div class="content">
                    <h2 class="header">Box {{ title }}</h2>
                    <span class="content" ng-transclude></span>
                </div>
            </div>
        </script>
        <script id="ad" type="text/ng-template">
            <div class="side-ad">
                <div class="content">
                    <h2 class="header">AD {{ title }}</h2>
                    <span class="content" ng-transclude></span>
                </div>
            </div>
        </script>
链接函数(..)内的作用域显示正确的标题,但在html中不起作用:

方框{{title}

链接1 链接2

我想我错过了一件事,但我想不出来,我需要你的帮助来完成这个循环


Thanx事先,必须先编译包含角度绑定表达式的模板元素,然后链接。编译阶段准备模板,而链接阶段为绑定表达式设置$watchers

下面是一个应该可以工作的编译函数:

    .directive('sideElement', function ($templateCache, $compile, $log) {

    return {
      restrict: 'A',
      transclude: true,
      scope:'@',
      compile: function(element, attrs) {
        var template = $templateCache.get(attrs.sideElement);
        var templateElement = angular.element(template);
        element.append(templateElement);
        return function(scope, element, attr, ctrl, transclude) {
          $log.info(scope.title);
        }
      }
    }

错误:[ngTransclude:孤立]在模板中非法使用ngTransclude指令!未找到需要转换的父指令。元素:将您的指令定义更改为“transclude:true”,它绑定了标题,但它不断生成我在模板中注意到的相同错误,即您已经有了ng transclude指令。然后我认为您不需要调用transclude()函数并手动附加克隆。让我知道进展如何!不,它不起作用,即使在删除transclude()函数时也会产生相同的错误
    .directive('sideElement', function ($templateCache, $compile, $log) {

    return {
      restrict: 'A',
      transclude: true,
      scope:'@',
      compile: function(element, attrs) {
        var template = $templateCache.get(attrs.sideElement);
        var templateElement = angular.element(template);
        element.append(templateElement);
        return function(scope, element, attr, ctrl, transclude) {
          $log.info(scope.title);
        }
      }
    }